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一起使用可作为表达式,循环执行完之后有返回值,例如:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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);