选择结构
流程控制语句
在程序中,拥有三大类流程控制语句:
- 顺序控制语句:自上而下依次执行语句指令
- 选择/分支控制语句:不同的条件决定了执行不同的语句指令
- 循环控制语句:在满足条件的情况下可以反复的执行指定语句指令
if 选择结构
if:如果
基础if选择结构
语法:
// 条件表达式通过关系运算符和逻辑运算符等构成// true、falseif ( 条件表达式 ) {// 条件成立时执行的代码段}
注意:缩进和空格。
if-else选择结构
互斥 if 选择结构。
else:否则
语法:
if ( 条件表达式 ) {// 条件成立时执行的代码段} else {// 条件不成立时执行的代码段}
多重if选择结构
if-else if-else选择结构
语法:
if ( 条件表达式1 ) {// 条件1成立时执行的代码段} else if ( 条件表达式2 ) {// 条件2成立时执行的代码段} else {// 当条件都不满足时执行的代码段}
注意事项:
多重 if 可以写很多 else if 分支条件,但必须以 if 开头。
多重 if 可以在结尾处添加一个 else 作为“候补”分支。
多重 if 是自上而下的执行 if 判断,只要有一个分支成立,后续的分支不再执行判判断。 可以解答的简化一些范围性的判断,但是得注意条件判断的放置顺序问题。
嵌套if选择结构
if ( 外层条件表达式 ) {if ( 内层条件表达式 ) {}}
如果外层条件不成立,内层条件不会执行判断!各种 if 之间可以相互嵌套!当你需要的时候,就写即可!
switch选择结构
switch语法
switch (表达式) {
case 常量1:
// 表达式和常量1相等时,执行的代码段
break;
case 常量2:
// 表达式和常量2相等时,执行的代码段
break;
default:
// 当表达式和所有常量都不相等时,执行的代码段
break;
}
注意事项:
- 表达是不是条件表达式!
在 switch 后可以使用 int、String(Java 7支持)、Enum(枚举,了解)数据类型转换:由于自动类型转换的问题,byte、short、char 也是受支持的。
- 每一个 case 后接的是一个常量!
- 每一个 case 都应该以一个break 结尾! break适用于跳出 switch 结构的!
如果缺失了 break,会出现 case 的穿透性问题。判断分支成立并执行后,会依次向其他分支穿透执行,直到遇到 break 或 switch 结束为止。
switch 和 if 的对比
相同点:
- switch 和 if 都是选择结构
- switch 和多重 if 都是多分支的选择结构
不同点:
- switch 他只能用于等值判断的情况,而多重 if 还可以用语范围性判断