流程控制
if--else,条件判断,与Java中用法一致
Scala中的if--else有返回值,值为代码块最后一行的值
val age: Int = StdIn.readInt() //键盘输入
val result: String = if (age <= 18) { //定返回值类型
println("青少年")
"青少年" //返回数据
Scala中的渐变写法
val res = if (age >= 18) “成年” else “未成年”
在Scala中if也是可以嵌套使用的
for循环
for (i <- 1 to 10){ //to是方法,从1遍历到10
println(i + ".hello world")
to方法来自 RichInt 其中
将上述代码中的to改为until就可以让遍历不包含最后一位(10)
循环守卫,即循环保护式(也称条件判断式),保护式为true则进入循环内部,为false则跳过。
for(i <- 1 to 3 if i != 2) //相当于for与if的结合体
循环步长,默认为1,步长为负数的话,循环应该为从大到小循环,补偿不能为0。
for(i <- 1 to 10 by 2) //出来为1、3、5、7、9,by也是一个方法
当步长为0.5时——
for(i <- 1.0 to 10.0 if i != 0.5) //将数据类型统一
for的循环嵌套
for (i <- 1 to 3){
for (j <- 1 to 3) {
print(i + "" + j + " \ ")
11 / 12 / 13 / 21 / 22 / 23 / 31 / 32 / 33 /
Scala中for循环嵌套的简便写法
for(i <- 1 to 3; j <- 1 to 3) //两个循环相加,完成循环的嵌套
九九乘法表——
for(i <- 1 to 9; j <- 1 to i) {
print(s"$j * $i = ${i * j} \t")
if (j ==i ) println()
1*1=1
1*2=2 2*2=4
. . . . . .
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
$ 符号用于字符串插值,字符串插值是一种将变量值直接嵌入到字符串字面量中的技术。
循环返回值,默认情况下都是空,类型为Unit,开发中很少用
While和do..while循环
Scala中一般不推荐使用while的循环,推荐用for循环
While没有返回值
用法和Java中一致
循环中断
Scala去掉了break和continue,为了更好适应的函数式编程
可以用抛出异常的方法,退出循环,为了方便,使用Scala中的Breaks类的break方法,实现异常的抛出和捕捉。
Breaks.breakable( //注意是小括号
for (i <- 0 until 5){
if (i == 3)
Breaks.break()
println(i)