流程控制
一、流程控制语句
1.可以控制程序的执行流程
(1) 顺序结构
从上往下,依次执行
(2) 选择结构
1) if 语句
格式一:if(判断体){
执行体;
}
执行流程:
先执行判断体的值,看其返回值是true还是false
如果是true,运行执行体
如果是false,就不运行执行体
注:如果执行体只有一行,格式一的写花括号可以省略,但并不是执行完判断体后会按照顺序结构运行执行体,只是隐藏了花括号而已
执行体有多行,花括号一定不能省略
格式二:if(判断体) {
执行体1;
}else {
执行体2;
}
执行流程:
首先计算判断体的值,看其返回值是true还是false。
如果是true,就运行执行体1;
如果是false,就运行执行体2;
格式三:if(判断体1) {
语句体1;
}else if(判断体2) {
语句体2;
}else if(判断体3) {
语句体3;
}
...
else {
语句体n+1;
}
执行流程:
首先计算判断体1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算判断体2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算判断体3看其返回值是true还是false,
如果都是false,就执行语句体n+1
案例:
1.判断闰年
2.判断输入的成绩注意:else作用一般用于对范围外的错误值提示
3.BMI的计算公式是 体重(kg) / (身高*身高)
2) switch 语句
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
执行流程
先计算表达式的值(整形值或Sting类型)
然后和case后面的值匹配,如果有就执行对应的语句,否则执行default控制的语句
案例:
1.判断季节
2.判断成绩注意:
① 表达式可以是byte、short、int、char、枚举类型。JDK1.7以后,可使用String类型。
② case语句后面只能使用常量表达式;且case后的值不能重复。
③ 某个case分支如果没有提供break语句,则继续执行下一个case后的语句。
3)if 与 switch 语句的区别
switch语句和if语句的各自使用场景
① switch建议判断固定值(不建议是太多的固定值)的时候用
② if建议判断区间或范围的时候用
③ 针对int(整形)、String(字符串)、enum(枚举)类型数据 if语句和switch语句可以互换
(3) 循环结构
1) for 循环
for(初始化语句;判断体语句;迭代体语句) {
循环体语句;
}
执行流程:
① 执行初始化语句
② 执行判断体,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
③ 执行循环体语句;
④ 执行迭代体
⑤ 回到②继续执行
案例:
1.第一天给1块,第二天给前一天的2倍,多少天给了超过1000W
1 | int sumMoney = 0; |
2) while 循环
初始化语句;
while(判断体语句) {
循环体语句;
迭代体语句;
(控制条件语句;)//一般用于退出死循环操作
}
执行流程:
① 执行初始化语句
② 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
③ 执行循环体语句;
④ 执行控制条件语句
⑤ 回到②继续执行
案例:
1.输出 1 - 100 的奇数和
1 | int a = 1, sum1 = 0; |
3) do……while 循环
初始化语句;
do {
循环体语句;
迭代体语句;
(控制条件语句;)——一般用于退出死循环操作
}while(判断条件语句);
执行流程:
① 执行初始化语句
② 执行循环体语句;
③ 执行控制条件语句
④ 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
⑤ 回到②继续。
4) 死循环问题
两种最简单的死循环格式
while(true){…}
for(;;){…}
一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环
5) 三种循环语句的区别
① do…while循环至少执行一次循环体。(一般情况不用)
for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
② for循环和while循环的区别
如果想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用哪个最好用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
二、嵌套语句
流程控制语句可以互相进行嵌套操作
常见的嵌套:if语句与if语句嵌套(if语句+&&)
while语句与if语句嵌套
for语句与if语句嵌套
for语句与for语句嵌套(while与while)
if语句与if语句嵌套
案例:
1.九九乘法表
1 | //九九乘法表 |

2.输出*直角三角形
1 | * |
1 | for (int i = 0; i < 3; i++) {//行 |
1 | * |
1 | for (int i = 1; i < 6; i++) { |
3.画出倒等腰三角形
1 | ***** |
1 | for (int i = 0; i < 3; i++) {//确定行数 |
三、控制语句
(1) 使用范围
break——break用在switch或循环中
continue——continue用在循环中
return——return返回某个值或结束方法
(2) return和break以及continue的区别
return是结束方法
break是退出当前整个循环
continue是终止本次循环继续下次循环
1 | public class Control{ |

(3) 通过标记控制跳转语句
1 | outer: for (int i = 0; i <= 10; i++) { |
