概述
流程控制总共有三种 顺序流程 分支 循环
让程序有选择的的执行,分支控制有三种:单分支、双分支、多分支
语法
- 单分支
if (条件表达式) {
执行代码块
}
说明:当条件表达式为ture时,就会执行{ }的代码。
- 双分支
if (条件表达式) {
执行代码块1
} else {
执行代码块2
}
- 多分支
if (条件表达式1) {
执行代码块1
}
else if (条件表达式2) {
执行代码块2
}
……
else {
执行代码块n
}
**
案例
基础案例
val a = 10
if (a % 2 == 0) {
println(s"$a 是偶数")
}
val m = 10
val n = 20
var max = m
if (m > n) {
max = m
} else {
max = n
}
在Scala中, 任意的语法结构(执行的语句, 表达式等等)都有值, 是执行的最后一行代码的值自动返回,
在Scala里面没有三元运算符,就可以用下面的代替三元运算符
val m = 10
val n = 20
val max = if (m > n) m else n // 等价于: m > n ? m :n
println(max)//20
if elas 有返回值
Scala中if else表达式其实是有返回值的,具体返回值取决于满足条件的代码体的最后一行内容。
def main(args: Array[String]): Unit = {
println("input age")
var age = StdIn.readInt()
val res :String = if (age < 18){
"童年"
}else if(age>=18 && age<30){
"中年"
}else{
"老年"
}
println(res)
}
返回值类型不一致,取它们共同的祖先类型
def main(args: Array[String]): Unit = {
println("input age")
var age = StdIn.readInt()
val res:Any = if (age < 18){
"童年"
}else if(age>=18 && age<30){
"中年"
}else{
100
}
println(res)
}
Java中的三元运算符可以用if else实现
如果大括号{}内的逻辑代码只有一行,大括号可以省略。如果省略大括号,if只对最近的一行逻辑代码起作用。
def main(args: Array[String]): Unit = {
// Java
// int result = flag?1:0
// Scala
println("input age")
var age = StdIn.readInt()
val res:Any = if (age < 18) "童年" else "成年"
"不起作用"
println(res)
}