day3总结(流程控制语句)
3.1流程控制
不论哪种语语言,都会提供两种基本的流程控制结构:分支结构和循环结构。其中分支结构用于实现根据条件来选择地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码。
3.1.1顺序结构
是最常见一个种顺序结构。顺序结构就是程序从上到下逐行地执行。中间没有任何跳转和判断。
例如:主方法(main)中多行代码没有任何的流程控制语句。则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。
public class void main(Sting[] arrgs){
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
3.2 分支结构:if语句(判断语句)
3.2.1 if的第一种格式:
语法格式:
if(关系表达式){
语句体;
}
-
执行流程:
- 对关系表达式进行判断,判断关系表达式为true或者为fasle
- 如果关系表达式为true的话执行语句体。
- 如果关系表达式为false的话结束。
3.2.2if的第二种格式:
语法格式:
if(关系表达式){ 语句体1; }else{ 语句体2; }
-
执行流程:
- 先对关系表达式进行判断,判断关系表达式的结果为true还是false。
- 如果关系表达式的结果为true,执行语句体1。
- 如果关系表达式的结果为false,执行语句体2.
3.2.3if的第三条种格式:
语句格式:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
...
else if(关系表达式n){
语句体n;
}else{
语句体n+1;
}
-
执行流程:
-
对关系表达式1进行判断
-
如果关系表达式1为true的话执行语句体1。
- 如果关系表达式1为false,对关系表达式2进行判断。
-
如果关系表达式2位true的话,执行语句体2。
-
如果关系表达式false的话。执行语句体3。
…
-
如果全部的关系表达式都为false的话,执行语句体n+1.
-
3.2.4 if语句和三元运算符的互换
在某些简单的应用中,if语句是可以和三元运算符进行互相转换使用的。
3.3 分支结构: switch语句(选择语句)
语法格式:
switch(表达式){
case 1:
语句体1;
break;
case 2:
语句体2;
break;
...
case n:
语句体n;
break;
default:
语句体n+1;
break;
}
执行流程:
- 首先求出表达式的值。
- 在用表达式的值和下面每个case进行匹配。如果匹配成功,则执行相对应的语句体。但是在执行的过程中,遇到break就会结束掉整个循环语句。
- 如果没有找到与之对应的case值,则会执行default对应的语句体。然后整个程序结束。
注意事项:(重点)
- switch语句中,表达式有规定的取值范围
四种基本数据类型(byte,short,int,char)
和两种引用数据类型(JDK版本5.0包括5.0支持枚举类型),(JDK7.0包括7.0支持字符串类型)
case的穿透性
在switch语句中,如果case的后边不写break,将会出现穿透现象,也就是一旦匹配成功,不会再判断下一个case的值,直接继续向后执行,直到遇到遇到break或者整个switch语句执行完成,switch语句执行终止。
3.4 循环语句:for语句(循环语句)
执行语句:
for(初始化语句,循环条件语句1,迭代语句){
循环体语句2
}
执行流程:
-
先执行初始化语句,
-
判断循环条件语句1,如果循环条件语句1的结果为true ,执行循环体语句2,
- 执行迭代语句
- 继续判断循环条件语句1。执行第二步。
-
如果循环体语句1的结果为false。结束循环。
3.5 循环语句:while语句(循环语句)
执行语句:
while(循环条件语句){
循环体语句
}
执行流程:
- 先判断循环条件语句
- 如果循环条件语句为true,执行循环体语句
- 如果循环体条件语句为false,结束循环。
- 循环体语句执行完毕后,重新回到第一步开始执行。
while循环语句扩展格式:
初始化语句
while(循环条件语句){
循环体语句1
迭代语句
}
执行流程:
- 执行初始化语句,完成循环变量的初始化。
- 执行循环条件语句,判断循环条件语句的结果
- 如果为true,执行循环体语句1。执行迭代语句
- 如果为false,结束循环语句,循环不在执行。
- 继续对循环条件语句进行判断。
3.6循环语句:do…while语句(循环语句)
执行语句:
do{
循环体语句
}while(循环条件语句)
执行流程:
-
先执行循环体语句
-
对循环条件语句进行判断,
-
如果结果为true,执行循环体语句。
-
如果结果为false,循环结束,循环不在执行。
-
-
继续对循环条件语句进行判断。
do…while循环的扩展格式
初始化语句
do{
循环体语句;
迭代语句;
}while(循环条件语句)
执行流程:
- 先执行初始化语句
- 执行循环体语句。执行迭代语句
- 判断循环条件语句
- 如果结果为true执行循环体语句,执行迭代语句。
- 如果结果为false循环结束,循环不在执行。