第二章 scala流程控制

scala默认返回最后一行的值(不用在return了;如果使用了return,那就必须给出返回类型)
1:判断语句
        def add(a:int,b:int) = {
                if(a>3){
                       3
               }elseif(a<1){
                      1
              }else{
                     0
              }
        }
2:循环语句
    while(true){
         println("hello")
    }
    //for的基本形态
   for(i<-1 to 10){
         println(i)
    }
1 to 10:这个相当于一个集合
  闭区间
  我们可以打印出来 println(1 拖10 )  输出结果为: range(1,2,3,4,5,6,7,8,9,10)
  for(i <- 1 to 10)就是吧 集合里面的数据循环出来
  for(i <- i.to(10)){println(i)}
  for(i <- i.(10)){println(i)}
 开区间
 for(i <- 1 until 10){
     println(i)
 }
输出内容是 1,2,3,4,5,6,7,8,9  不包含10
 
3:for修改步长方式(这种叫做守卫)
   //修改步长
  for(i <- 1 to 10 if i%2 ==0 ){
    println(i)
  }
 
 
4:双重for
     for(i <- 1 until 10){
     for(j <- 1 to 5){
       println(i+"_"+j)
     }
  }
  for(i <- 1 to 10; j <- 1 to 5){
    println(i+"_"+j)
  }
这两个效果一样
5:循环集合并对每一项处理生成新的集合(for)的推导式
    var tmpfor(i <- 1 to 10)yield i*2
   println(tmp)
网上还有一种这样的写法
  var tmp=for(i <- 1 to 10)yield(i*2;i+1)
  println(tmp)
这样有用scala只会返回最后一行的值 所以,输出的结果是都加了1,(i*2)是没有用的,但是我的版本不只支持这样的写法,估计是版本问题
posted @ 2017-12-26 20:48  瀚海行舟  阅读(160)  评论(0编辑  收藏  举报