b.控制结构

1. if/ if... else...与java 相同。

2.while/ do while 用法与java 相同,返回值始终为Unit。

3.for循环终于有自己的风格,如下:

1 // <- 被称为生成器
2 for(i <- 表达式){
3   // TODO  
4 }

例如:

// 隐式转换成 scala.runtime.RichInt类型,然后调用 RichInt中的 def to(end:Int):Range>Inclusive = Range.inclusive(self,end)
for(i <- 1 to 5){//[1,5] println(i) }
//
for(i <- 1 until (10,2)){//[1,10)
  //TODO
}

 4.无论是for循环,还是while ,都没有提供关键词 break、continue ,可以通过两种途径实现: -是定义Boolean变量,在循环中进行条件判断,二是在程序中引入 scal.util.control.Breaks类

1 import scala.util.control.Breaks._
2 
3 breakAble{
4     for(i <- 1 to 5){
5         if(i==2){
6             break;
7         }
8    }  
9 }

 4.1 有过滤条件的for循环。

for(i <- 表达式 if(条件一);if(条件二);...){
    // TODO 满足所有条件的时候才执行!
}

 

 5.for循环和关键字 yield一起使用可作为表达式,循环执行完之后有返回值,例如:

1 var x = for(i <- 1 to 5) yield i
2 x: scala.collection.immutable.IndexedSeq[Int] = Vector(1,2,3,4,5);
3 var x = for(i <- 1 to 5) yield i/2
4 x: scala.collection.immutable.IndexedSeq[Int] = Vector(0,1,1,2,2);
5 
6 var x = for(i <- 1 to 3) yield i%2 == 0
7 x: scala.collection.immutable.IndexedSeq[Int] = Vector(false,true,false);
View Code

 

posted @ 2016-12-13 22:08  执风  阅读(179)  评论(0编辑  收藏  举报