文章目录
流程控制
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
- 判断语句
- if语句第一种格式: if
if(关系表达式){
语句体;
}
- if语句第二种格式: if…else
if(关系表达式) {
语句体1;
}else {
语句体2;
}
- if语句第三种格式: if…else if …else
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
}
...
}else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
小tips: if语句和三元运算符的互换
public static void main(String[] args) {
int a = 10;
int b = 20;
//定义变量,保存a和b的较大值
int c;
if(a > b) {
c = a;
} else {
c = b;
}
//可以上述功能改写为三元运算符形式
c = a > b ? a:b;
}
- 选择语句
- switch语句格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
执行流程图解:
注意:
case的穿透性:
这里的穿透性用代码来解释:
public static void main(String[] args) {
int i = 5;
switch (i) {
case 0:
System.out.println("执行case0");
break;
case 5:
System.out.println("执行case5");
case 10:
System.out.println("执行case10");
default:
System.out.println("执行default");
}
}
当我们执行该主方法时,我们可以看到输出的就是情况5、10、default中的语句,可见当程序判断到值为5的代码段时,程序并没有停止,而是一直向下执行。
当我们给情况10加上break关键字时:程序结束执行,退出了整个switch语句,这表示在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
public static void main(String[] args) {
int i = 5;
switch (i) {
case 0:
System.out.println("执行case0");
break;
case 5:
System.out.println("执行case5");
case 10:
System.out.println("执行case10");
break;
default:
System.out.println("执行default");
}
}
- 循环语句
- for循环语句格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
- while循环语句格式:
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
- do…while循环格式
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
执行流程
执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
小tips:
- 当循环的条件未知的时候用while语句,当循环的次数已知时使用for
- 控制条件的变量当我们在之后的代码还需要用的时候就使用while语句,反之使用for语句,因为for语句中控制条件的变量会自动从内存中消失,能够提高内存的使用效率。
- 跳出语句
- break : 终止switch或者循环
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5){
break;
}
System.out.println(i);
}
}
这里当我们执行到i == 5 的时候,就结束了打印,表示语句被终止。
- continue: 结束本次循环,继续下一次的循环
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5){
// break;
continue;
}
System.out.println(i);
}
}
这里我们可以看到,我们跳过了i==5的那次打印,但是循环并没有被终止,而是进行执行了。
扩展:
死循环: 循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}
嵌套循环: 指一个循环的循环体是另一个循环
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
嵌套循环执行流程:(初识化条件只执行一次)
执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥
外循环一次,内循环多次。
比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。
欢迎java热爱者了解文章,作者将会持续更新中,期待各位友友的关注和收藏。。。