if这个单词表示“如果”,if语句在可以让程序有选择性地执行。
它的语法比较格式比较简单,与java中的一致。
1. 单分支 if(){}
2. 双分支 if(){} else {}
3. 多分支 if(){} else if(){} else if(){} else {}
一. if语句的格式和执行流程
Scala中的if语句的语法格式如下:
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}else {
// 如果以上条件都为 false 执行该语句块
}
案例一
判断是否成年
object Base13 {
def main(args: Array[String]): Unit = {
// 1.获取用户输入的数字
// 2.判断
// 3.输出结果
print("请输入年龄:")
val age = scala.io.StdIn.readInt()
if( age >= 18 ){
println("成年")
}
else {
println("未成年")
}
}
}
结果如图:
案例二
比较正方形和长方形面积大小
输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个图形的面积。如果长方形面积大,输出 “RECTANGLE”;如果正方形面积大,输出 “SQUARE”,如果一样大,输出 “SAME”。
object Base13 {
def main(args: Array[String]): Unit = {
println("请输入正方形的边长:")
val a = scala.io.StdIn.readDouble()
println("请输入长方形的长:")
val b = scala.io.StdIn.readDouble()
println("请输入长方形的宽:")
val c = scala.io.StdIn.readDouble()
val squareArea = a * a
val rectangleArea = b * c
if (rectangleArea > squareArea) {
println("RECTANGLE")
} else if (squareArea > rectangleArea) {
println("SQUARE")
} else {
println("SAME")
}
}
}
结果如图:
案例三
输入分数输出等级
输入正整数分数,输出对应的等级符号。规则如下:[90,100] 为 A 等;[80,89] 为 B 等;[70,79] 为 C 等;[60,69] 为 D 等;[0, 59] 为 E 等;
object Base14 {
def main(args: Array[String]): Unit = {
// 最后一个else 在语法上是可以省略的
println("请输入分数(0-100之间的正整数):")
val score = scala.io.StdIn.readInt()
// 根据分数范围判断等级
val grade = if (score >= 90 && score <= 100) {
"A"
}
else if (score >= 80 && score <= 89) {
"B"
}
else if (score >= 70 && score <= 79) {
"C"
}
else if (score >= 60 && score <= 69) {
"D"
}
else if (score >= 0 && score <= 59) {
"E"
}
else {
"无效分数"
}
// 输出结果
println(s"对应的等级是:$grade")
}
}
结果如图:
二. if语句的返回值
Scala中的if语句是有返回值的,它的执行过程如下:
val a= if(布尔表达式) {
表达式1
} esle{
表达式2
}