流程控制语句
在程序中,拥有三大类流程控制语句:
-
顺序控制语句:自上而下依次执行语句指令
-
选择/分支控制语句:不同的条件决定了执行不同的语句指令
-
循环控制语句:在满足条件的情况下可以反复的执行指定语句指令
这三大类的流程控制语句,结合使用,构造了复杂的程序。
自行了解流程图的绘制。
if 选择结构
if:如果
基础if选择结构
语法:
// 条件表达式通过关系运算符和逻辑运算符等构成
// true、false
if (条件表达式) {
// 条件成立时执行的代码段
}
注意:缩进和空格。
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 还可以用于范围型判断