一、流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。控制语句分为三类:顺序、选择和循环。
- 顺序结构:先执行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语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),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:
使用场景:结束本次循环,继续执行下一次循环。