其他分享
首页 > 其他分享> > 流程控制

流程控制

作者:互联网

分支控制

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

标签:控制,val,流程,else,while,age,表达式,布尔
来源: https://www.cnblogs.com/POCOPOCOPOCO/p/16697619.html