2. 控制结构
2.1 if条件表达式
val x = 6
if (x>0){
println("Positive Number.")
} else{
println("Negative Number.")
}
2.2 while循环
var i = 9
while(i > 0){
i -= 1
printf("i is %s\n",i)
}
------------------------
val x = 0
do {
i += 1
println(i)
}while (i<5)
2.3 for循环
for (变量 <- 表达式) 语句块
for (i <- 1 to 5) {
println(i)
}
其中“变量<-表达式”被称为“生成器(generator)”
- 如果希望不打印出所有的结果,过滤一些满足制定条件的结果,需要使用到称为“守卫(guard)”的表达式,比如只输出1到5之中的所有偶数,可以采用以下语句。
for (I <- 1 to 5 if I%2==0){
println(i)
}
- scala也支持“多个生成器”情况,可以用分号将其进行分开。
for (i<- 1 to 5; j<- 1 to 3){
println(i*j)
}
- for推导式
for (变量 <- 表达式)yield{语句块}
val result = for (i <- 1 to 5 if i%2 == 0)yield{println(i); i}
Scala的for结构可以在每次执行的时候创造一个值,然后将包含了所有值的集合作为for循环表达式的结果返回,集合的类型由生成器中的集合的类型确定;
通过for循环遍历一个或者多个集合,对集合中的元素进行“推导”,从而计算得到新的集合,用于后续的其他处理。