二、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关键字,对过滤后的结果构建一个集合。比如一下语句:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FzIF92hw-1668676973528)(C:\Users\23220\AppData\Roaming\Typora\typora-user-images\image-20221117171120803.png)]](https://i-blog.csdnimg.cn/blog_migrate/c59327b7f0e0904b1b7bee4c45624f05.png)
287

被折叠的 条评论
为什么被折叠?



