单分支 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) } }
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) }
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") } }