Scala基础—再谈控制语句

来源:互联网 发布:软件app如何推广 编辑:程序博客网 时间:2024/05/23 15:50
package com.spark.scala.basicsimport scala.util.control.Breaks/**  * ifforwhile等三种控制结构  */object ControlStructures {  def main(args: Array[String]): Unit = {    var age = 25    /**      * 1.scala中,if else是有值的;在Java中是没有值的!      * 2.if条件表达式中可以进行类型推导      * 3.if后面没有else部分,默认的实现是if() ... else ()      * 4."{}"中最后一条语句的返回值就是if的返回值,其类型就是if返回的类型      * 5.if表达式可以用在for等其他控制结构,用于限制结果      */    val result = if (age > 20) "Worker" else "Student"    println(result) // Worker    val result2 = if (age > 18) "Adult" else 1    println(result2)    val result3 = if (age > 18) "Adult" else ()    var x, y = 0    val result4 = if (age < 18) {      x = x + 1      y = y + 1      x + y    } else 0    println(result4)    /**      * 1.跳出for循环,可以使用if守卫,还可以使用return(return 是方法级别的),还可以使用break      *      */    for (i <- 0 to 5 if i == 2) {      println(i) // 2    }    //等价于    for (i <- 0.to(5) if i == 2) {      println(i) // 2    }    var flag = true    var sum = 0    for (x <- 0 to 6 if flag) {      println(x)      if (5 == x) flag = false    }    for (x <- 0 to 6) {      println(x)      if (3 == x) return    }    var loop = new Breaks    for (x <- 0 to 5) {      println(x)      if (4 == x) loop.break()    }    var a = 10;    // while 循环执行    while( a < 20 ){      println( "Value of a: " + a )      a = a + 1    }  }}