二、Scala控制结构

二、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)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值