目录
让程序有选择的执行,分支控制有三种:单分支、双分支、多分支
基本语法
if(条件表达式){
执行代码块
}
说明:当条件表达式为true时,就会执行{ } 的代码
基本语法
if(条件表达式){
执行代码块1
}else{
执行代码块2
}
基本语法
if(条件表达式){
执行代码块1
}else if (条件表达式2) {
执行代码块2
}
...........
else{
执行代码块n
}
- package Chapter04
-
- import scala.io.StdIn
-
- object Test01_IfElse {
- def main(args: Array[String]): Unit = {
- println("请你输入你的年龄")
- val age:Int = StdIn.readInt()
-
- //1、单分支
-
- if (age>=18){
- println("你已经成年")
- }
- println("---------------")
-
- //2、多分支
-
- if (age>=18){
- println("你已经成年")
- }else{
- println("你还未成年")
- }
- println("---------------")
-
- //3、多分支
-
- if (age<=6){
- println("童年人")
- } else if (age<18){
- println("青年人")
- }
- else if (age<35){
- println("成年人")
- }else if (age<60){
- println("中年人")
- }else{
- println("老年人")
- }
-
-
-
- }
-
- }
运行结果

Scala 中 if else 表达式其实是有返回值的,具体返回值取决于满足条件的 代码体的最后一行内容。
定义返回值 String 不可以返回 Until,定义 Until 可以返回 String
Scala 中返回值类型不一致,取它们共同的祖先类型。
测试:
1、返回值为Until
2、返回值为String
3、返回值不一致时,需要返回它们的共同父类
-
- package Chapter04
-
- import scala.io.StdIn
-
- object Test01_IfElse {
- def main(args: Array[String]): Unit = {
-
- println("请你输入你的年龄")
- val age:Int = StdIn.readInt()
-
- //3、多分支
- 1、
- val result:Unit =if (age<=6){
- println("童年人")
- } else if (age<18){
- println("青年人")
- }
- else if (age<35){
- println("成年人")
- }else if (age<60){
- println("中年人")
- }else{
- println("老年人")
- }
- println("result:"+result)
- println("-----------")
- 2、
- val result1:String =if (age<=6){
- println("童年人")
- "童年人"
- } else if (age<18){
- println("青年人")
- "青年人"
- }
- else if (age<35){
- println("成年人")
- "成年人"
- }else if (age<60){
- println("中年人")
- "中年人"
- }else{
- println("老年人")
- "老年人"
- }
- println("result1:"+result1)
- println("----------")
- 3、
- val result2: Any=if (age<=6){
- println("童年人")
- "童年人"
- } else if (age<18){
- println("青年人")
- "青年人"
- }
- else if (age<35){
- println("成年人")
- age
- }else if (age<60){
- println("中年人")
- age
- }else{
- println("老年人")
- age
- }
- println("result2:"+result2)
- println("----------")
- }
- }
运行结果
输入的age为:87

如果大括号{}内的逻辑代码只有一行,大括号可以省略。如果省略大括号,if 只对最近 的一行逻辑代码起作用。
Java 中的三元运算符可以用 if else 实现
java 三元运算符 a?b:c
String res = (age>=18)?"成年人":"未成年人"
- package Chapter04
-
- import scala.io.StdIn
-
- object Test01_IfElse {
- def main(args: Array[String]): Unit = {
-
- println("请你输入你的年龄")
- val age:Int = StdIn.readInt()
-
- val result3:String=if(age>=18){
- "成年人"
- }else{
- "未成年人"
- }
- println("result3:"+result3)
-
-
- val result4:String=if(age>=18) "成年人" else "未成年人"
- println("result4:"+result4)
-
-
-
- }
-
- }
超过或者三重嵌套分支比较复杂,逻辑比较复杂,不建议使用
- package Chapter04
-
- import scala.io.StdIn
-
- object Test01_IfElse {
- def main(args: Array[String]): Unit = {
- println("请你输入你的年龄")
- val age:Int = StdIn.readInt()
-
- //5、嵌套分支
- if (age>=18) {
- println("成年")
- if (age >= 35) {
- if (age >= 60) {
- println("老年")
- }else {
- println("中年")
- }
- }else{
- println("青年")
- }
-
- }else{
- println("未成年")
- if(age<=6){
- println("童年")
- }else{
- println("未成年人")
- }
- }
-
- }
-
- }
运行结果
输入age为:1
