前言
继续Scala之旅
流程控制
1.分支控制
1.1.if-else,和Java一致
if(表达式){
代码块1
}else if(表达式){
代码块2
}else{
代码块3
}
但是Scala的if结果可以直接作为一个参数来用
var age = 50
val res :String = if (age < 18){
"童年"
}else if(age>=18 && age<30){
"中年"
}else{
"老年"
}
println(res)
如果if的大括号内只有一行逻辑存在,那么就可以直接省略,比如:
val res:String = if (age < 18) "童年" else "成年"
和java一样,Scala的if语句也支持多层嵌套,但是并不建议这样做,不利于代码的可读性
if(){
if(){
}esle{
}
}
1.2.Switch分支
Scala中没有Switch语法,而是使用模式匹配来实现,该模块较为繁琐,后续梳理
2.循环语句
2.1.for循环
范围循环
//to,打印1~3,包前包后
for(i<- 1 to 3){
println(i)
}
//倒序打印
//until,打印1~2,包前不包后
for(i <- 1 until 3) {
print(i + " ")
}
//by,步长,打印10以内的奇数
for (i <- 1 to 10 by 2) {
println("i=" + i)
}
2.2.范围守卫
在for循环的逻辑中加入if判断,类似于continue
for(i <- 1 to 3 if i != 2) {
print(i + " ")
}
2.3.嵌套循环
for(i <- 1 to 3; j <- 1 to 3) {
println(" i =" + i + " j = " + j)
}
//也可以这样写
for (i <- 1 to 3) {
for (j <- 1 to 3) {
println("i =" + i + " j=" + j)
}
}
2.4.循环返回值
yield关键字,开发中很少用,了解即可
val res = for(i <- 1 to 10) yield i
println(res)