流程控制
-
顺序结构
-
分支结构
-
选择结构
-
循环结构
一,分支结构
关键字:
if、else
单 if 结构:
if(条件){ 语句 } 逻辑:先判断条件,如果条件为true,则执行if代码块中的语句;反之,不执行
标准的 if-else 结构:
if(条件){ 语句a }else{ 语句b } 逻辑:先判断条件,如果条件为true,则执行if代码块中的语句a;反之,执行else代码块中的语句b注:以上结构,if、else 有且只有一个会执行
多条件的 if-else 结构:
if(条件1){ 语句1 }else if(条件2){ 语句2 }else if(条件3){ 语句3 }... 逻辑:从上到下依次判断条件,如果条件的结果false,则继续判断下一个条件;当某一个条件的结果为true,执行对应代码块中的语句,执行完毕后跳出整个结构if(条件1){ 语句1 }else if(条件2){ 语句2 }else if(条件3){ 语句3 } ... else { 语句n } 逻辑:从上到下依次判断条件,如果条件的结果false,则继续判断下一个条件;当某一个条件的结果为true,执行对应代码块中的语句,执行完毕跳出整个结构;如果没有任何一个条件的结果为true,执行最后的else代码块中的语句
嵌套的 if-else 结构:
int age = 151; if(age >= 0 && age <= 150){ if(age < 18){ System.out.println("未成年"); }else if(age < 46){ System.out.println("青年"); }else if(age < 66){ System.out.println("中年"); }else{ System.out.println("老年"); } }else{ System.out.println("非法的年龄值"); }注:内层的 if-else、只有在外层满足的前提下才会执行
补充:如果if、else后没有
{}
,那么if、else只能影响最近的一条语句;换言之,如果if、else后代码块中的语句只有一条,那么{}
可以省略
二,选择结构
关键字:
switch、case、break、default
格式:
switch(表达式){ case 值1: 语句1 break; case 值2: 语句2 break; case 值3: 语句3 break; ... default: 语句n break; } 逻辑:先计算表达式的结果,如果某一个case后的值与表达式的结果相同,就执行该case后的语句,如果没有任何一个case后的值与表达式的结果相同,则执行default后的语句。注:
switch后
()
中的内容既可以是表达式也可以是值每一个case后的值必须是唯一的
switch后
()
中表达式结果的数据类型只能是byte、short、int、char、Stringswitch后
()
中表达式的结果与case后的值存在自动类型转换每一个case以及default的位置都是任意的
break用于跳出整个switch-case结构,如果删除了break会让当前的switch-case具有穿透性
default不是必需的
三,循环结构
关键字:
while、do、for
break、continue
循环的四个要素:
循环条件
初始化值
步进表达式
循环体
3.1 while 循环
格式:
while(条件){ 循环体 } 逻辑:判断循环条件,如果条件为true,执行循环体,继续判断条件,如果条件为true,执行循环体,直到条件为false,结束循环
3.2 do-while 循环
格式:
do{ 循环体 }while(条件); 逻辑:先执行一次循环体,再判断循环条件,如果条件为true,执行循环体,继续判断条件,如果条件为true,执行循环体,直到条件为false,结束循环特点:至少执行一次循环体
3.3 for 循环
格式:
for(初始化值①;条件②;步进表达式③){ 循环体④ } 流程:1243243243243...2
3.4 break 和 continue
break:用在
switch-case
和循环
结构中,用于跳出整个结构,如果break在循环嵌套中,break只能跳出它所在的循环continue:只能用于
循环
结构中,用于跳过当前这次循环继续后续的循环
3.5 死循环
格式:
while(true){ } do{ }while(true); for(;;){ }
3.6 循环嵌套
概念:一个循环结构作为另一个循环的循环体