一、条件分支(有返回值),返回的是代码块最后一行代码执行的值
val result:String = if(a == 1){
"aaa"
}else if(a ==2){
"bbb"
}else{
"ccc"
}
二、循环守卫、步长、返回值
// 1 to 10 => [1,10] ==范围不一样== 1 until 10 => [1,10)
// by 2 意思是步长step=2
// 仅当if中条件成立时,执行代码块内容,可对比java中的continue关键字
// yield i * 2 代表返回的集合是由当前符合条件的 i*2 组成的
val ints: immutable.IndexedSeq[Int] = for(i <- 1 to 10 by 2 if i <= 5 ) yield i * 2
注意:
1、step 任何时候都不能为 0;
2、若start > end 时,step <0 ,会返回empty空集合
三、嵌套循环与退出,不推荐使用while
// 嵌套循环
for(i <- 1 to 3;j <- 1 to 4) {
println(s"${i} == ${j}")
}
// 退出循环(底层原理是抛出异常)
Breaks.breakable(
for(i <- 1 until 8 ){
if (i == 3 ) Breaks.break()
println(i)
}
)