文章目录
- 流程控制语句
- 1. 判断语句
- 1. 1 if语句
- 1.2 if…else语句
- 1.3 if…else if…else语句
- 2. 选择语句
- 2.1 switch语句
- 3. 循环语句
- 3.1 for循环语句
- 3.2 while循环语句
- 3.3 do…while循环语句
- 4. 跳转语句
- 4.1 break语句
- 4.2 continue语句
流程控制语句
概述:在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
顺序结构:
public static void main(String[] args){
//顺序执行,根据编写的顺序,从上到下运行
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
1. 判断语句
1. 1 if语句
if(关系表达式){
语句体;
}
执行流程
- ①首先判断关系表达式看其结果是true还是false
- ②如果是true就执行语句体
- ③如果是false就不执行语句体
1.2 if…else语句
if(关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程
- ①首先判断关系表达式看其结果是true还是false
- ②如果是true就执行语句体1
- ③如果是false就执行语句体2
1.3 if…else if…else语句
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
} else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
执行流程
- ①首先判断条件1看其结果是true还是false
- ②如果true就执行语句1
- ③如果是false再判断条件2
- ④如果true就执行语句2
- ⑤以此类推…
2. 选择语句
2.1 switch语句
switch(表达式) {
case 常量值1: 语句体1; break;
case 常量值2: 语句体2; break;
...
default: 语句体n+1; break;
}
执行流程
- ①首先计算出表达式的值
- ②其次和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
- ③最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
3. 循环语句
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
3.1 for循环语句
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
- ①负责完成循环变量初始化
- ②负责判断是否满足循环条件,不满足则跳出循环
- ③具体执行的语句
- ④循环后,循环条件所涉及变量的变化情况
3.2 while循环语句
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
- ①负责完成循环变量初始化。
- ②负责判断是否满足循环条件,不满足则跳出循环。
- ③具体执行的语句。
- ④循环后,循环变量的变化情况
3.3 do…while循环语句
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
执行流程
执行顺序:①③④>②③④>②③④…②不满足为止。
- ①负责完成循环变量初始化。
- ②负责判断是否满足循环条件,不满足则跳出循环。
- ③具体执行的语句
- ④循环后,循环变量的变化情况
do…while循环的特点
无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的循环具有一定的风险性,因此初学者不建议使用do…while循环。
4. 跳转语句
跳转语句用于实现循环执行过程中程序流程的跳转。
4.1 break语句
使用场景:终止switch或者循环
①在选择结构switch语句中
②在循环语句中
public static void main(String[] args) {
int x = 1;
while(x <= 4) {
System.out.println("x="+x);
if(x == 3) {
break; //条件成立则跳出循环
}
x++;
}
}
4.2 continue语句
使用场景:结束本次循环,继续下一次的循环
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 100; i++) {
if(i % 2 == 0) {
continue; //结束本次循环
}
sum = sum + i; //实现sum和i的累加
}
System.out.println("sum = " + sum);
}
死循环
也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。
嵌套循环
所谓嵌套循环,是指一个循环的循环体是另一个循环体。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
嵌套循环执行流程:
执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥,外循环一次,内循环多次。
比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环