分支结构
分类
1. if分支结构
if (条件表达式) { 语句块; }
判断条件表达式是否成立 => 若成立,则执行语句块;=> 若不成立,则跳过语句块;
2. if else分支结构
if (条件表达式) { 语句块1; } else {语句块2;}
判断条件表达式是否成立 => 若成立,则执行语句块1;=> 若不成立,则执行语句块2;
3. if else if else分支结构
if (条件表达式1) { 语句块1; }
else if (条件表达式2) {语句块2;}
else {语句块3}
判断条件表达式1是否成立 => 若成立,则执行语句块1;
=> 若不成立,则判断条件表达式2是否成立
=> 若成立,则执行语句块2,否则执行语句块3;
4. swich case分支结构
swich(变量/表达式) {
case 字面值1: 语句块1; break;
case 字面值2: 语句块2; break;
……
default:语句块n;
}
计算变量/表达式的数值=> 判断是否匹配字面值1=> 若匹配,则执行语句块1 => 执行break跳出当前结构
=> 若不匹配,则判断是否匹配字面值2
=> 若匹配,则执行语句块2 => 执行break跳出当前结构
=> 若不匹配,则执行语句块n
注:
switch()中支持的数据类型有:byte、short、int以及char类型,从jdk1.5开始支持枚举类型,从jdk1.7开始支持String类型。
注意下面的问题
循环结构
概念
重复执行一段代码时,用到循环结构
分类
1. for循环
for (初始化表达式; 条件表达式; 修改初始值表达式) { 循环体; }
执行初始化表达式=> 判断条件表达式是否成立
=> 成立则执行循环体=> 修改初始值表达式=> 判断条件是否成立
=> 若不成立,则循环结束
2. 双重for循环
for(初始化表达式1; 条件表达式2; 修改初始值表达式3) {
for(初始化表达式4; 条件表达式5; 修改初始值表达式6) {循环体;}
}
执行表达式1 => 判断表达式2是否成立
=> 若成立,则执行表达式4 => 判断表达式5是否成立
=> 若成立,则执行循环体=> 执行表达式6 => 表达式5是否成立
=> 若不成立,则内层循环结束=> 表达式3 => 表达式2是否成立
=> 若不成立,则外层循环结束
3. while循环
while (条件表达式) { 循环体; }
判断条件表达式是否成立
=> 若成立,则执行循环体=> 判断条件表达式是否成立
=> 若不成立,则循环结束
while循环和for循环比较
- while循环和for循环完全可以互换,当然推荐使用for循环。
- while循环更适合于明确循环条件但不明确循环次数的场合中。
- for循环更适合于明确循环次数或范围的场合中
4. do while循环
do { 循环体;} while(条件表达式);
执行循环体=> 判断条件表达式是否成立
=> 若成立,则执行循环体=> 判断条件表达式是否成立
=> 若不成立,则循环结束
do-while循环主要用于至少执行一次循环体的场合中
涉及关键字
1. continue关键字
continue语句用在循环体中,用于结束本次循环而开始下一次循环
2. break关键字
-
break用于退出当前语句块,break用在循环体中用于退出循环
-
在嵌套的循环结构中,break用于退出所在循环体。如果要退出外层循环体,需要使用标号的方式
outer: for (...) { for(...) { break outer; } }
-
死循环:没有循环条件的循环叫做无限循环,俗称“死循环”