Scala分支结构-if

96 阅读2分钟

if这个单词表示“如果”,if语句在可以让程序有选择性地执行。

它的语法比较格式比较简单,与java中的一致。

1. 单分支。 if(){}

2. 双分支   if(){} else {}

3. 多分支   if(){} else if(){} else if(){} else {}

scala 中的if语句形式与java中的完全相同,if语句语法如下:

if(布尔表达式 1){  
   // 如果布尔表达式 1true 则执行该语句块  
}else if(布尔表达式 2){  
   // 如果布尔表达式 2true 则执行该语句块  
}else if(布尔表达式 3){  
   // 如果布尔表达式 3true 则执行该语句块  
}else {  
   // 如果以上条件都为 false 执行该语句块  
}

案例一:

提示用户输入年龄,判断是否成年。

def main(args: Array[String]): Unit = {
    // 从键盘输入一个年龄,判断是否成年
    val age = StdIn.readInt()
    if (age >= 18) {
      println("成年")
    }  else {
      println("未成年")
    }
  }

案列二:

输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个图形的面积。如果长方形面积大,输出 “RECTANGLE”;如果正方形面积大,输出 “SQUARE”,如果一样大,输出 “SAME”。

val a = StdIn.readDouble()
val b = StdIn.readDouble()
val c = StdIn.readDouble()
val square = a * a
val rectangle = b * c
if (square > rectangle) {
   println("SQUARE")
} else if (square < rectangle) {
println("RECTANGLE")
} else {
   println("SAME")
}

案列三:

输入正整数分数,输出对应的等级符号。规则如下:(90,100) 为 A 等(80,89)  为 B 等;(70,79)  为 C 等;(60,69)  为 D 等;(0, 59)  为 E 等;

def main(args: Array[String]): Unit = {
    val score = StdIn.readDouble()
    if (score >= 90) {
      println("A")
    } else if (score >= 80) {
      println("B")
    } else if (score >= 70) {
      println("C")
    } else if (score >= 60) {
      println("D")
    } else if (score >= 0) {
      println("E")
    }
  }

sclace 中的if语句是有返回值的,它的执行过程如下:

val a= if(布尔表达式) {  
   表达式1  
} esle{  
   表达式2  
}

讲解: 如果布尔表达式为true,则会把表达式1的值赋给变量a。如果布尔表达式为false,则会把表达式2的值赋给变量a。即如果布尔表达式为true,a=表达式1,否则,a=表达式2。

示范案例:

判断一个数是奇数还是偶数:
var i = 2;
var c = if(i%2 ==0){"偶数"} else {"奇数"}

改造案例三的代码,通过if的返回值来获取等级。
def main(args: Array[String]): Unit = {
    val a = StdIn.readInt() // 从键盘输入两个数,a、b
    val b = StdIn.readInt()  
val c = _________________  //  用c来保存它们的较大者
    println(c) // 输出较大者
  }