选择结构
- 选择结构:根据条件来选择性地执行某段代码
if 语句
- 语法结构
if (boolean 表达式 或 boolean 变量) {
条件执行体 // 为 true 时执行
}
- 执行流程
图 1 if语句
- if (boolean 表达式) 后没有 分号
if-else 语句
-
语法结构
-
else 的隐含条件是对前面条件取反
if (boolean 表达式 或 boolean 变量) {
条件执行体 1 // 为 true 时执行
} else {
条件执行体 2 // 为 false 时执行
}
- 执行流程
图 2 if-else语句
-
if-else 语句和三元运算符:从语义上二者的含义相同;从本质上说,if-else 是语句结构,三元运算符是一种运算符号,三元运算符运算结束后会得到一个结果,而 if-else,不能返回什么结果,只能控制语句的执行流程。
-
不能直接使用 else 语句.
if-else if-else 语句
- 语法结构
if (boolean 表达式 A) {
条件执行体 1 // A为 true 时执行
} else if (boolean 表达式 B) {
条件执行体 2 // B为 true 时执行
} else {
条件执行体 3 // 为 false 时执行
}
- 执行流程
图 3 if-elseif-else语句
- 不能单独使用 else if
- 可以不需要 else,至少一个 else if
switch 语句
- 语法结构
switch (整型表达式) {
case 值 1:
执行语句 1;
break; // 注意是否要写 break
case 值 2:
执行语句 2;
break;
...
case 值 n:
执行语句 n;
break;
default:
以上值都不匹配时执行的语句; // 不用写 break
}
- 执行流程
图 4 switch语句
- switch 语句适用于对多个整型值进行匹配判断,从而实现条件的分支控制,即“整型表达式 == int类型的值”
- switch 语句后的表达式的数据类型只能是 byte、short、char、int 四种整数类型,枚举类型和 String 类型(从 Java 7 才允许),不能是 boolean 类型
- switch 语句支持的基本数据类型只有四种:
byte
、short
、char
、int
,不支持 long 类型,本质:switch 仅仅只能支持 int 类型(byte、short、char 会自动提升为 int 类型) - switch 执行的时会把入口 case 之后的 case 统统忽略,会一直往下执行,直到遇到
break
或return
(穿透) default
一般放在 switch 的最后,也不需要写 break
总结
- if 语句:针对单个条件判断
- if-else 语句:针对两个相斥条件判断
- if-else if-else 语句:针对多个相斥条件判断(
范围
) - switch 语句:针对多个相斥条件判断(
整型值
)