流程控制语句:在一个程序执行过程中,各条语句的执行顺序对程序的运行结果是有影响的,也就是说程序的流程对运行结果是由直接影响的,因此有必要知道每条语句的执行流程,而且正常情况下需要通过控制流程语句来实现要完成的功能。
1.流程控制语句的分类
- 顺序结构
- 选择结构
- 循环结构
顺序结构是程序中最基本的流程控制,美哟特定的语法结构,按照代码的先后顺序依次执行,程序中的大多数代码都是按照顺序结构执行的。可以说成是写在前面的程序先执行,后面的程序后执行。
2.选择结构的分类
- if语句
- switch语句
- if语句
if语句的格式1
if (比较表达式或者是boolean类型的值){
语句体;
}
执行流程:
先计算比较表达式的值,看起返回值是true还是false
如果是true,就执行语句体
如果是false,就不执行语句体
需要注意的是比较表达式的结果必须是boolean类型的,并且如果语句体是一行的话就不用加大括号,但是还是建议加上。
if语句的格式2
if(比较表达式){
语句体1;
}else{
语句体2;
}
注意的是else后面没有表达式,只有if后面有
执行流程:
首先计算比较表达式的值,看起返回值是true还是false
如果返回值为true,那么就执行语句体1
如果返回值为false,那么就执行语句体2
可以看出三元运算符可以用if语句实现。
if语句的格式3
if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}else if(比较表达式3){
语句体3;
}
…
else{
语句体n+1;
}
需要注意的是只要是在if语句里面有else的那么程序肯定是会执行一次的。
- switch语句
switch语句的格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
…
default:
语句体n+1;
break;
}
需要知道以下几点:
- switch()里面表达式的取值可以是byte,short,char,int,long()其中JDK5以后可以是枚举,JDK7以后可以是String
- case后面是要和表达式进行比较的值
- 语句体可以是一条或多条语句
- break用来结束语句
- case后面只能是常量,不能是变量,并且多个case后面的值不能出现相同的
- break可以省略,但是省略以后会发生case穿透现象
switch语句的结束条件
- 遇到break就结束了
- 执行到末尾就结束了
在进行实际操作时,到底是选择switch语句还是if语句,可以从以下几点看:
if语句的使用场景
- 针对结果是boolean类型的判断
- 针对一个范围的判断
- 针对几个常量值的判断
switch语句的使用场景
- 针对几个常量值的判断
循环结构
所谓循环结构是循环语句在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句。
循环语句的分类
- for循环
- while循环
for循环
for循环语句的格式:
for(初始化表达式语句;判断条件语句;控制条件语句){
循环体语句;
}
for循环的执行流程:
- 执行初始化表达式语句
- 执行判断条件语句
如果是true,就继续执行
如果是false,就结束循环 - 执行循环体语句
- 执行控制条件语句
- 回到2继续实行
可以看出初始化条件只执行一次然后后面的执行顺序类似于逆时针执行。
while循环
while循环的语句格式:
初始化条件语句
while(判断条件语句){
循环体语句;
控制条件语句;
}
执行流程:
1:执行初始化条件语句;
2:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
3:执行循环体语句;
4:执行控制条件语句
5:回到2继续。
do…while循环
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:
1:执行初始化条件语句;
2:执行循环体语句;
3:执行控制条件语句;
4:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
5:回到2继续。
三种循环的区别:
- do…while循环会至少执行一次,另外需要注意的是while(判断条件语句)后面有一个分号。
- for ,while循环必须先判断条件是否成立,然后再决定是都执行循环体语句