流程控制语句

一、流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。控制语句分为三类:顺序、选择和循环。

  • 顺序结构:先执行a,再执行b
  • 选择结构:如果…,则…
  • 循环结构:如果…,则再继续…

二、选择结构

1.if单选择结构

if(关系表达式)
    语句体;

执行流程:

  • 首先判断关系表达式看其结果是true还是false

  • 如果是true就执行语句体

  • 如果是false就不执行语句体

流程控制语句

 

2.if-else双选择结构

if(关系表达式) { 
    语句体1;
else {
    语句体2;
}

执行流程:

  • 首先判断关系表达式看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就执行语句体2

流程控制语句

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还是false
  • 如果是true就执行语句体2
  • 如果是false就继续判断关系表达式看其结果是true还是false
  • 如果没有任何关系表达式为true,就执行语句体n+1

流程控制语句

注意:不要在if()后面加";"

if();{}

4.switch选择语句

switch用于选择一个分支来执行

switch(表达式) {
  case 常量值1:
    语句体1;
    break;
  case 常量值2:
    语句体2;
    break;
  ...
  default:
    语句体n+1;
    break;
}

 执行流程:

  • 首先计算出表达式的值
  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

流程控制语句

switch语句中,表达式的数据类型,可以是byteshortintcharenum(枚举),JDK7后可以是String。

注意:case的穿透性

switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

三、循环结构

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

 

 1.for循环

for(初始化表达式布尔表达式步进表达式){
        循环体
}

执行流程: 

  • 执行顺序:①②③④>②③④>②③④②不满足为止。
  • ①负责完成循环变量初始化
  • ②负责判断是否满足循环条件,不满足则跳出循环
  • ③具体执行的语句
  • ④循环后,循环条件所涉及变量的变化情况

流程控制语句

2.while循环

初始化表达式
while(布尔表达式) {
    循环体
    步进表达式
}

执行流程:

  • 执行顺序:①②③④>②③④>②③④②不满足为止。
  • ①负责完成循环变量初始化。
  • ②负责判断是否满足循环条件,不满足则跳出循环。
  • ③具体执行的语句。
  • ④循环后,循环变量的变化情况。

流程控制语句

3.do...while循环

初始化表达式
    do{
    循环体
    步进表达式
}while(布尔表达式);

执行流程:

  • 执行顺序:①③④>②③④>②③④②不满足为止。
  • ①负责完成循环变量初始化。
  • ②负责判断是否满足循环条件,不满足则跳出循环。
  • ③具体执行的语句。
  • ④循环后,循环变量的变化情况。

流程控制语句

4.循环语句区别

for和while的区别:

  • 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
  • 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while

while和do...while的区别:

  • while循环的循环条件为false,就一次也不执行。
  • do...while循环无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的循环具有一定的风险性。
  • 如果循环条件为true,则2种循环没有区别

 5.break和continue

1.break:

我们使用 for循环 while循环 可以让程序重复执行代码.但是有时候我们可能在循环的中途让循环停下来.需要使用 break。

使用场景:跳出循环,提前结束循环。

2.continue:

使用场景:结束本次循环,继续执行下一次循环。