1、流程控制语句分类:
A.顺序结构
B.分支结构
C.循环结构语句
(1)顺序结构语句
顺序结构语句是Java程序,默认的执行流程,按照代码的先后顺序依次执行。
从上到下,从左到右。
(2)顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
顺序结构执行流程图:
2、if语句
(1)if语句格式1
1)格式:
If(关系表达式){
语句体;
}
2)执行流程:
首先计算表达式的值,
如果关系表达式的值为true就执行语句体;
如果关系表达式的值为false就不执行语句体;
继续执行后面的语句内容。
3)注意事项:如果if语句所控制的语句体,是一条语句,大括号可以省略不写;但是不建议;If语句的小号号后面,不要写分号;
(2)if语句格式
1)格式:
If(关系表达式){
语句体;
}else{
语句体2;
}
2)执行流程:
首先计算表达式的值,
如果关系表达式的值为true就执行语句体1;
如果关系表达式的值为false就执行语句体2;
继续执行后面的语句内容。
(4)if语句格式3
1)格式:
If(判断条件1){
语句体;
}else if(判断条件2){
语句体2;
}…
Else{
语句体n;
}
2)执行流程:
首先计算表达式的值,
如果判断条件1的值为true就执行语句体1;如果值为false就计算判断条件2的值;
如果判断条件2的值为true就执行语句体2;如果值为false就计算判断条件3的值;
…;
如果没有任何判断条件为true,就执行语句体n+1;
(4)案例(if嵌套if)
3、switch语句
(1)格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
(2)格式说明
表达式:(将要被匹配的值)取值为byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是String;
case:后面跟的是要和表达式进行比较的值(被匹配的值);
break:表示中断结束的意思,用来结束switch语句;
default:表示所有情况都不匹配时,就执行该处内容,和if语句的else相似;
(3)执行流程:
首先计算表达式的值;
依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束;
如果所有的case后面的值和表达式的值都不匹配,就执行default里面的语句体,然后程序结束掉。
(4)注意事项:
case给出的值不允许重复;
case后面的值只能是常量,不能是变量
(5) Switch的case穿透
如果switch语句中,case控制的语句体后面省略break,就会出现case产生穿透;
现象:当开始case穿透,后续的case就不会匹配效果,内部的语句都会执行;
直到看到break,或将整体switch语句执行完毕,才会结束;
例如:需要键盘录入星期数,输出工作日、休息日;(1-5)工作日,(6-7)休息日;
(6)应用场景:当发现switch语句中,多个case给出的语句体出现了重复,就可以考虑使用case穿透来优化代码。
4、循环语句
重复做某件事情,具有明确的开始和停止标志;
(1)for循环语句
1)格式
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
2)执行流程
A.执行初始化语句;
B.执行条件判断语句,看其结果是true还是false
如果是false,循环结束;
如果是true,继续执行;
C.执行循环体语句;
D.执行条件控制语句;
E.回到B继续;
(2)while循环语句
1)基本格式:
while(条件判断语句){
循环体语句;
}
2)完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
例子:下面for和while效果一样。
3)执行流程
A.执行初始化语句;
B.执行条件判断语句,看其结果是true还是false
如果是false,循环结束;
如果是true,继续执行;
C.执行循环体语句;
D.执行条件控制语句;
E.回到B继续;
不明确循环次数用while,明确循环次数用for
(3)do…while循环语句(用的比较少)
1)基本格式:
do{
循环体语句;
}while(条件判断语句);
2)完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
3)执行流程:
A.执行初始化语句;
B.执行循环体语句;
C.执行条件控制语句;
D.执行条件判断语句,看其结果是true还是false
如果是false,循环结束;
如果是true,继续执行;
E.回到B继续;
无论判断条件是否满足,至少执行一次循环;
4)三种循环区别
A.for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行);
B.do….while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断);
C.for和while的区别:
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了;
条件控制语句所控制的自增变量,对于while循环来说,不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
5)do…while循环语句中的死循环
A.for死循环
for(;;){
}
B.while死循环(最常用的)
while(true){
}
C.do…while 死循环
do{
}while(true);
命令提示符窗口中Ctrl+C可以结束死循环;
5、跳转控制语句
(1)跳过某次循环体内容的执行:continue;
注意:使用是基于条件控制的;
例如:模拟电梯上行的过程中,1-24层,4层不停;
(2)终止循环体内的执行
Break;
注意:使用是基于条件控制的
(3)小结:
A.continue用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行;
B.break用在循环中,基于条件控制,种植循环体内容的执行i,就是说结束当前的整个循环;
C.break和continue只能跳、跳过自己所在的那一层关系,如果要想跳出、跳过指定的一层就可以加入标号;
D.结构:
标号名:while(true){
switch(表达式){
case 1:
break 标号名;
}
}