Scala-流程控制
分支控制
单分支
if(布尔表达式) {
// 如果布尔表达式为 true 则执行该语句块
}
双分支
if(布尔表达式) {
// 如果布尔表达式为 true 则执行该语句块
} else {
// 如果布尔表达式为 false 则执行该语句块
}
多分支
if(布尔表达式1) {
// 如果布尔表达式1为 true,则执行该语句块
} else if ( 布尔表达式2 ) {
// 如果布尔表达式2为 true,则执行该语句块
}...
} else {
// 上面条件都不满足的场合,则执行该语句块
}
object ScalaBranch {
def main(args: Array[String]): Unit = {
val age = 30
if ( age < 18 ) {
println("童年")
} else if ( age <= 30 ) {
println("青年")
} else if ( age <= 50 ) {
println("中年")
} else {
println("老年")
}
}
}
object ScalaBranch {
def main(args: Array[String]): Unit = {
val age = 30
val result = if ( age < 18 ) {
"童年"
} else if ( age <= 30 ) {
"青年"
} else if ( age <= 50 ) {
"中年"
} else {
"老年"
}
println(result)
}
}
循环控制
for
1 to 5 省略 . 和()
for ( i : Int <- 1 to 5) // 1.to(5)
{
println(i)
}
也可省略 类型
for ( i <- 1 to 5) // 1.to(5)
{
println(i)
}
舒服写法
val range = 1 to 5 by 2 // 从1到5 步长2
val range = range(1,5,2) // 从1到5(不包含5) 步长2 也等于 1 until 5 by 2
for ( i<- range)
{
println(i)
}
while
var age = 0
while (age < -1) {
println(age)
age += 1
} // while 循环
do {
println(age)
age += 1
} while (age < -1) // do while 循环
循环中断-----静态导入
scala是完全面向对象的语言,所以无法使用break,continue关键字这样的方式来中断,或继续循环逻辑,而是采用了函数式编程的方式代替了循环语法中的break和continue
package test01
import scala.util.control.Breaks._ // 静态导入
object scala_test01_break {
def main(args: Array[String]): Unit = {
// Breaks.breakable(
// for (i <- 1 to 5) {
// if (i == 3) {
// Breaks.break() // 采用跑出异常的方式来跳出循环
// }
// println(i)
// }
// )
breakable(
for (i <- 1 to 5) {
if (i == 3) {
break() // 采用跑出异常的方式来跳出循环
}
println(i)
}
)
println("other")
}
}