二、Scala控制结构
1、if条件表达式
在Scala中,执行if语句时,会首先检查if条件是否为真,如果为真,就执行对应的语句块;如果为假,就执行下一个条件分支。不同与java,Scala中的if表达式的值可以赋值给变量。
测试:
进入linux系统中/usr/local/scala/mycode目录下,并在该目录下创建一个iftest.scala,用于测试代码:
在iftest文件中写入代码:
由于该代码源程序没有main函数入口,因此我们直接通过scala命令进行执行,结果:
我们来测试一下通过if条件表达式的值给变量进行赋值:
重写一下iftest代码
在终点执行一下该代码文件,结果:
2、while循环
Scala中的while语句同java中一样
while语句:
var i = 9
while(i > 9){
i -= 1
printf("i is %d\n", i)
}
运行结果:
do-while语句:
var i = 0
do{
i += 1
println(i)
}while(i < 5)
运行结果:
3、for循环
Scala中的for循环语句格式如下:
for (变量 <- 表达式(Range) )语句块
//变量 <- 表达式(Range)被称为生成器(generator)
//表达式即是Range的格式: 区间起点 to 区间终点 by 步长(默认步长为1)
例子:
for (变量 <- 表达式(Range) if 守卫)语句块
//有时候我们希望过滤出一些满足指定条件的结果,这个时候就要
//使用守卫guard表达式
//一个生成器只能有一个守卫
例子:
Scala也支持多个生成器的情形,可以用分号把它们隔开:
例子:
不难发现,他就是一个双重for循环,生成器越靠前,循环越早。
for推导式:
有时候我们需要对上述过滤后的结果进行进一步的处理,这时,就可以采用yield关键字,对过滤后的结果构建一个集合。比如一下语句: