流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
三种基本流程结构
- 顺序结构
- 分支结构:选择性地执行代码,有if else 和 switch case 两种分支语句
- 循环结构:根据循环条件,重复性执行。有while、do while、for三种。jdk1.5提供了foreach循环,方便的遍历集合数组元素
具体使用如下
1.if-else的使用方法
-
- if(条件表达式){执行代码块;}
- 二选一:if(条件表达式){执行代码块1;}else{执行代码块2;}
- 多选一:if(条件表达式1){执行代码块1;}else if(条件表达式2){执行代码块2;}......else{执行代码块n;}
- 特别说明
- 条件表达式必须是布尔
- 语句块只有一条执行语句时,{}可以省略,但建议保留
- 可以嵌套使用
- 多选一的格式,最后的else根据需要可以省略
- 当多个条件是互斥关系时,顺序无所谓。当多个条件有包含关系时,小上大下
- 就近原则:else寻找最近的if来配对
2.switch-case结构
-
- 语句:switch(表达式){case 常量1 :语句1//break;case 常量2:语句2//break...default:语句}
- 根据表达式的结果,依次匹配的case常量值,一旦匹配成功,则执行case其中的语句。当调用完匹配的执行语句之后,仍然继续向下执行后续case中的执行语句,直到遇到break语句或执行至结构末尾结束。如没有可匹配的case常量值,则执行default中的执行语句。
- break,可以使用在case中,执行到此关键字,便跳出结构。
- 表达式只能是如下六种数据类型之一:byte,short,char,int,枚举,String。
- 表达式和case之后只能声明常量
- break关键字是可选的,根据实际情况选用。绝大部分是需要加的。
- default相当于if else 中的else,上面都不符合,就执行默认的。default是可选的,可没有。而且位置是灵活的。
- 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立
- 当分支结构,可以使用switch-case同时case情况不多时,优先使用switch-case。因为执行效率稍高。
3.for循环的结构
-
- 循环结构的四个要素
a:初始化条件---多个可用逗号间隔
b:循环条件-----是布尔类型
c:循环体
d:迭代条件---多个可用逗号间隔
-
- for循环的结构
for(a;b;d){
c
}
-
- 执行过程:
a-b-c-d-b-c-d-b--FALSE就跳出
-
- break语句
一旦执行到这个语句,就跳出for循环。
4.while循环结构
-
- 循环结构的4个要素
- while循环的结构
初始化条件
while(循环条件){
循环体;
迭代条件;//一但丢了迭代条件,可能造成死循环
}
-
- for循环和while循环可以相互转换,初始化条件作用域不同,在while中出了循环依然可用。
5.do-while循环(少用)
-
- 循环结构四要素
- do-while结构
初始化条件;
do{
循环体;
迭代条件;
}while(循环条件);
-
- 执行过程和for 、while有区别
- 初始化条件-循环体-迭代条件-循环条件-循环体-迭代条件-循环条件-False退出循环
- 和for,while的区别,就是至少会执行一次循环体。开发过程中,主要使用for 和while,do-while使用较少
扩展:嵌套循环
- 定义:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环。
- 外层循环:循环结构B;内层循环:循环结构A。
- 内层循环遍历一遍,相当于外层循环的循环体执行一次。
- 假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环的循环体一共执行了m*n次。
- 外层循环控制行数,内层循环控制列数。
- break 和continue的使用:
使用范围 循环中使用的作用(不同点) 相同点
break switch-case 默认跳出的是包裹关键字最近的一层循环
循环结构中 结束当前循环 关键字后面不能声明执行语句
continue 循环结构中 结束当次循环
7.结束指定的外层循环:可以用标志标出循环,同时在break后添加标志。
lable:for(){
for(){
break lable;//结束指定标识的一层循环结构,continue相同
}
}
浙公网安备 33010602011771号