Java010-流程控制(循环结构、分支结构、顺序结构)以及break、continue关键字
一、循环结构
1、for循环
1)IDEA快捷键:fori+回车
2)格式:for(初始化变量;循环条件;迭代操作){循环体;}
3)执行流程:初始化变量,判断循环条件,为true时执行循环体,进行迭代操作,继续判断循环条件……直到为false结束循环。
4)注意点:初始化变量使用范围是for循环内;先判断后执行。
2、while循环
1)格式:while(循环条件){循环体;迭代操作;}
2)执行流程:先判断循环条件,为true时执行循环体、迭代操作,继续判断循环条件……直到为false结束循环。
3)注意点:先判断后执行;适合做死循环while(true){循环体;}
3、do-while循环
1)格式:do{循环体;迭代操作;}while(循环条件);
2)执行流程:先执行循环体、迭代操作,再判断循环条件,为true时执行循环体、迭代操作,继续判断循环条件……直到为false结束循环。
3)注意点:先执行后判断,至少执行一次循环体;格式末尾有分号。
二、分支结构
1、if分支
1)3种格式:
格式1:if (条件表达式){语句;}
格式2:if (条件表达式){语句;} else {语句;}
格式3:if (条件表达式){语句;} else if (条件表达式){语句;} else {语句;}
注意:格式3可存在多个 else if (条件表达式){语句;}
2)适合场景:相对适合做区间匹配,也可做值匹配。
2、switch分支
1)格式:
switch(表达式){case 值1:执行代码;break;case 值2:执行代码;break;……default:执行代码; }
注意事项:若没有break,会出现穿透现象。穿透性可用于简化代码。如下
int time = 1;
switch (time) {
case 1:
case 3:
case 5:
System.out.println(time * 2);
break;
case 0:
System.out.println(time + 1);
break;
case 4:
case 6:
case 7:
case 8:
System.out.println(time);
break;
default:
System.out.println("数据出错!");
2)表达式类型:支持byte、short、int、char、枚举(JDK5开始),String(JDK7开始)、integer等类型。但不支持double、float、long、Boolean。
3)适合场景:适合值匹配。
三、顺序结构
顺序结构:按代码先后顺序执行,即程序默认流程。
四、break和continue关键字
break和continue后都不能跟需执行的语句。
1、break
三种使用场景:
1)跳出并结束当前循环。
2)跳出并结束switch语句。
3)跳出并结束指定循环:先在循环前定义一个标签名称+“ : ”, 使用时在break后加标签名称。例子如下
//3)跳出并结束指定循环
A:
for (int i = 0; i < 5; i++) {
B:
for (int j = 0; j < 4; j++) {
for (int k = 0; k < 3; k++) {
if (i+j+k>3){
System.out.println("i="+i+"\tj="+j+"\tk="+k);
// break;
// break A;
break B;
}
}
}
}
2、continue
两种使用场景:
1)跳出当前循环的当次执行,进入当前循环的下一次执行。
2)跳出指定循环的当次执行,进入指定循环的下一次执行:
用法与break第三种类似。例子如下
//2)跳出指定循环的当次执行,进入指定循环的下一次执行
A:
for (int i = 0; i < 5; i++) {
B:
for (int j = 0; j < 4; j++) {
for (int k = 0; k < 3; k++) {
if (i+j+k>3){
System.out.println("i="+i+"\tj="+j+"\tk="+k);
// continue;
// continue A;
continue B;
}
}
}
}
注意:continue只能用于循环,不能用于switch分支。