文档章节

Scala 学习第三天

我是菜鸟我骄傲
 我是菜鸟我骄傲
发布于 2017/02/23 08:33
字数 437
阅读 15
收藏 0
package com.learn.scala

import scala.util.control.Breaks._

/**
  * scala 第三天
  * Created by zhuqing on 2017/2/22.
  */
object Day3 {

  def main(args: Array[String]): Unit = {
    /**
      * scala的if else 与java中的类似 ,但不同的是scala的有返回值(最后一个表达式的返回值)
      */
    val condition: Int = 1;

    var a = if (condition == 1) {
      "hello"
      "world"
    } else {
      100
    }
    println(a); //打印world

    /**
      * 没有可以执行的表达式时,返回Unit(类似Java的void)
      */
    var b = if (condition != 1) {
      "hello"
    }
    println(b) //打印()

    /**
      * {}语句块与Java类似, 但是可以有返回值
      */
    var c = {
      "hello"
      100
      "I love you"
    }

    println(c) //打印I love you

    /**
      * scala 循环,for
      */
    var sum = 0
    //i 变量,1 to 10 返回Rang
    for (i <- 1 to 10) {
      sum += i
    }
    println(sum); //打印1到10的和

    /**
      *   for 没有break,如果想用需要使用breakable,需要时先导入import scala.util.control.Breaks._
      */
    sum = 0
    for (i <- 1 to 10) {
      breakable {
        if (i == 6) {
          break;
        }
        sum += i
      }
    }
    println(sum)//1到5的和
    /**
      * for 的嵌套 不像Java的for循环嵌套需要写多个for,而是在一个for循环内用分号隔开多个遍历。
      */
    //for两层嵌套
    for(i <- 1 to 3 ; j <- 1 to 3){
      print("("+i+","+j+") ")
    }
    println()
    //打印//(1,1) (1,2) (1,3) (2,1) (2,2) (2,3) (3,1) (3,2) (3,3)
    //for三层嵌套
    for(i <- 1 to 3 ; j <- 1 to 3 ;m <- 1 to 3){
      print("("+i+","+j+","+m+") ")
    }
    println()
    /**
      * for循环的守卫
      */
    //if 判断为TRUE 时执行
    for(i <- 1 to 10  if i % 2==0 ){
      print(i +" ") //打印2 4 6 8 10
    }
    println()
    /**
      * for循环 ,yield 生成新的集合 , yield 后面加单条语句,或语句块
      */
    val vector = for(i <- 1 to 10  if i % 2==0 )   yield {
      var a = i*2
      a+"MB"
    }
    println(vector) //Vector(4MB, 8MB, 12MB, 16MB, 20MB)
    /**
      * while  和 do ...while循环与java的类似
      */
    var n = 0
    while(n<10){
      print(n+" ")
      n+=1
    }
    //打印0 1 2 3 4 5 6 7 8 9
    println()
    n=0
    do{
      print(n+" ")
      n+=1
    }while(n<10)
    //打印0 1 2 3 4 5 6 7 8 9
  }


}

 

© 著作权归作者所有

我是菜鸟我骄傲
粉丝 15
博文 245
码字总数 155708
作品 0
西安
架构师
私信 提问
机器学习、深度学习,人工智能的核心技术

  【CSDN现场报道】12月7日-9日,由全球最大中文IT社区CSDN承办的“2017中国大数据技术大会”(BigData Technology Conference 2017,简称BDTC 2017)在北京新云南皇冠假日酒店隆重举行。本...

深度学习
2017/12/11
0
0
现任明教教主CCNP Security Secure第三天第三部分

Yeslab安全CCIE 9月促销计划: 9月份报名安全CCIE,免费赠送市场价格16000的“教徒计划”。 老学员这个月报名只需4000! ---------具体情况请咨询我,或者Yeslab商务---------- 严重恭喜:安全...

wbf961127
2017/11/13
0
0
几个 Scala 在线学习资源(E文)

最近想学习下 Scala ,下面是找到的一些 E 文的在线学习资源 The official Scala site, start at the Learning Scala trail or take a tour of Scala. First steps to Scala by Bill Venners......

华宰
2011/06/16
1K
2
Scala 技术周刊 | 第 21 期

这里有最新的 Scala 社区动态、技术博文。 微信搜索 「scalacool」关注我们,及时获取最新资讯。 深度阅读 Play! Framework 系列(二):play 的项目结构 Play! Framework 系列 Scalameta tu...

ScalaCool
2017/09/15
0
0
【Scala-ML】如何利用Scala构建并行机器学习系统

引言 在学习Scala的过程中,我发现其在构建大规模分布式计算系统上有与生俱来的特质。其丰富的类型系统可以帮助编程设计提供很好的信息隐藏和抽象,其monoids和monads概念利用Scala高阶函数实...

JasonDing
2016/03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

总结:TCP/IP协议

一、介绍 TCP协议属于OSI七层模型中的传输层协议,提供处于网络连接中的两台计算机之间的数据 传输。   在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议...

浮躁的码农
5分钟前
1
0
一言不合就删库跑路?万名贡献者和阿里巴巴开源的二三事

9 月 27 日云栖大会,阿里巴巴宣布贾扬清担任开源技术委员会负责人。 有人问:开源是为了什么? 从个人视角看,可以证明自己的专业能力,获得行业认可; 从企业视角看,可以建立技术影响力,...

大涛学弟
15分钟前
2
0
JAVA编程注意事项(性能篇)

1. 尽量在合适的场合使用单例 使用单例可以缩短加载的时间,提高加载的效率,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生...

你好夜故事
17分钟前
2
0
List 前端 AngularJS JS 对IP排序

数据格式 $scope.dataList=[ {"ip":"192.168.10.10", "port":"8080",...}, { "ip":"192.168.10.12", "port":"8080",... } ,.....] 调用 $scope.ipSortForward($scope.dataList,"ip") 核心代码......

最菜最菜之小菜鸟
17分钟前
2
0
浅析Cassandra LeveledCompactionStrategy

前言 Cassandra是基于LSM架构的分布式数据库。LSM中有一个很重要的过程,就是压缩(Compaction)。默认的压缩策略是SizeTieredCompactionStrategy,今天主要说一下另一种压缩策略LeveledComp...

阿里云官方博客
22分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部