- 概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
分类:
顺序结构
选择结构
循环结构
- 顺序结构
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说:写在前面的先执行,写在后面的后执行。如下图
- 选择结构:也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。Java语言提供了两种选择结构语句if和switch;
- if语句有三种格式:
2.switch
格式解释:
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
根据业务需求可以将多个value值对应一个break;具有穿透的效果:
- 循环结构体for:
for(初始化表达式①;布尔表达式②;步进表达式④){
循环体③
}
执行流程:
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
关于for和foreach两的选择:foreach适合集合和数组,在复杂的循环中for效率更好;如果要对集合或者数据进行修改只能使用for,操作数据时想要使用下标也只能使用for.
- 循环结构体while
基本格式:
while(布尔表达式) {
循环体语句;
}
扩展格式:
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
执行流程:
执行顺序: ①②③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
white循环用于遍历
- 循环结构体do while
基本格式:
do {
循环体语句;
}while(布尔表达式);
扩展格式:
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
执行流程:
执行顺序: ①③④>②③④>②③④… ②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
三种循环的区别
虽然可以完成同样的功能,但是还是有小区别:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
n for循环语句和while循环语句的小区别:
使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。循环使用推荐for -- while-- do..while
break 结束当前循环
continue 结束本次循环,继续下一次循环