流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
顺序结构:
public static void main(String[] args){
//顺序执行,根据编写的顺序,从上往下运行
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
判断语句
if语句
if(关系表达式) {
语句体;
}
执行流程
①首先判断关系表达式看其结果是true还是false
②如果是true就执行语句体
③如果是false就不执行语句体
if…else语句
if(关系表达式) {
语句体1;
} else {
语句体2;
}
执行流程
①首先判断关系表达式看其结果是true还是false
②如果是true就执行语句体1
③如果是false就执行语句体2
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
⑤以此类推…
选择语句
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结束。
循环语句
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
for循环语句
for(初始化表达式①; 布尔表达式②; 步进表达式④) {
循环体③
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
while循环语句
初始化表达式①
while(布尔表达式②) {
循环体③
步进表达式④
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况
do…while循环语句
初始化表达式①
do {
循环体③
步进表达式④
} while(布尔表达式②);
执行流程
执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
do…while循环的特点:
无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的循环具有一定的风险性,因此初学者不建议使用do…while循环。
跳转语句
跳转语句用于实现循环执行过程中程序流程的跳转。
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++;
}
}
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; //求1~100之间的奇数求和
}
System.out.println("sum= "+sum);
}
死循环
也就是循环中的条件永远为true,死循环的是永不结束的循环。
while(true) {
System.out.println("死循环了.....");
}
嵌套循环
所谓嵌套循环,是指一个循环的循环体是另一个循环的循环体。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
嵌套循环执行流程:
执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥,外循环一次,内循环多次。
比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环