java基础学习笔记——day06
第三章:流程控制
1. 流程控制的结构
1.1 顺序结构
- 程序自上而下依次执行。编写学习的main方法就是一个典型的顺序结构。编写很多业务代码时,只有 顺序结构是远远不够的。
1.2 分支结构
1.2.1 if分支
i. 单分支结构
- 语法
if(表达式){ //表达式的结果必须是一个boolean值达式的结果
执行语句;
}
-
执行顺序
- 先判定if中的表达式的值,如果表达式的值是true,则执行执行语句,整个if就执行结束了
- 如果后续还存在代码,则继续执行后续代码。
- 如果if中表达式的值是false,则跳过整个if单分支结构,继续之后后续代码
-
注意事项
- if中的表达式一定是一个boolean值。
- if中只存在一行代码时,可以不写大括号,但是不推荐
- 对于单分支而言,罗列的情况是比较单一的
ii. 双分支结构
- 语法
if(表达式){ //表达式的结果必须是一个boolean值达式的结果
执行语句;
}else{
执行语句;
}
-
执行顺序
- 先判定if中的表达式的值,如果表达式的值是true,则执行执行语句1,整个if就执行结束了。
- 如果后续还存在代码,则继续执行后续代码
- 如果if中表达式的值是false,则执行执行语句2,整个if-else执行结束,如果后续还存在代码,则 继续执行后续代码。
-
注意事项
- if中的表达式一定是一个boolean值
- if中只存在一行代码时,可以不写大括号,但是不推荐。
- 对于双分支而言,罗列的情况还是比较单一的
iii, 多分支结构
- 语法
if(表达式1){ //表达式的结果必须是一个boolean值达式的结果
执行语句1;
}else if(表达式2){
执行语句2;
}else if(表达式3){
执行语句3;
}else if(表达式n){
执行语句n;
}else{
最后一个执行语句;
}
- 执行顺序
- 计算表达式1的结果,如果表达式1的结果是true,执行对应的执行语句1
- 如果表达式1的结果是false,执行表达式2,以此类推,直到找到表达式满足条件执行对应的执行语句。
- 如果所有的表达式都不满足,则执行else,执行执行语句n。
- 注意事项
- 表达式的结果一定是一个boolean值。
- if-else不论是否执行,后续的执行语句照常按照顺序结构执行。
- if-else中一定会有一条语句被执行,被执行之后整个多分支结构执行结束
- 多分支结构在某些特定场合下执行速度会被拖慢,所以使用时要注意。
- 使用if分支一定要注意将大范围的判定写在前,将小范围的判定写在后面使用if5.分支一定要注意将
大范围的判定写在前,将小范围的判定写在后面
1.2.2 switch结构
- 语法
switch(表达式){
case 值1:执行语句1;break;
case 值2:执行语句2;break;
case 值3:执行语句3;break;
case 值4:执行语句4;break;
case 值5:执行语句5;break;
.................
default:执行语句N;break;
}
-
执行顺序
- 计算表达式的值;
- 逐步匹配对应的case,如果存在对应的case,则执行case对应的执行语句
- 如果没有则继续向下寻找新的case,直到找到为止,如果没有找到执行default对应的执行语句
- 碰到指定的case之后,执行完对应的执行语句,那么整个switch则执行结束
-
注意事项
- 注意case穿透,为了防止case穿透,在对应的执行语句后一定要加 break
- default 的存在是用来加强整个switch的健壮性(尽量使得将所有情况都罗列出来)
- default语句可以存在当前switch中的任意位置,但是一般情况下放在整个switch的后,否则可 能引起程序的逻辑错误。
- switch而言表达式只能是byte、short、char、int类型,其它基本类型除了boolean类型之外可以 通过强制转化进行书写。jdk1.5之后switch中增加了对于 Enum(枚举) 的支持,JDK1.7之后switch 中增加了对于 String(字符串) 的支持
1.3 循环结构
i. while循环
- 语法
while(循环表达式){
循环体;
}
-
执行顺序
- 判定循环表达式,如果表达式的结果是true,则执行循环体1次
- 继续判定循环表达式,直到循环表达式为false,整个while循环执行结束
- 执行后续代码
-
注意事项
- 循环表达式是一个boolean值
- while循环是不确定循环次数,但是确定循环的终止条件
- while循环中的循环表达式目前而言。如果一直为true那么导致当前循环为死循环,现阶段而言是 没有意义的。所以应该避免
ii. do-while循环
- 语法
do{
循环体;
}while(循环条件);
-
执行顺序
- 先执行do代码块一次
- 判定循环条件,如果循环条件为true,则继续执行循环体一次,直到条件不满足,执行后续代码
- 循环条件为false,则跳过do-while循环
-
注意事项
- 循环表达式是一个boolean值
- do-while循环是不确定循环次数,但是确定循环的终止条件
- 对于do-while循环而言,不管三七二十一都要执行循环体一次,而while循环需要先判定然后再决 定是是否执行循环体
- do-while的执行逻辑即可,针对于英语4,6级考试而言,我们应该使用do-while循环。
iii. for循环
- 语法
for(声明循环变量;循环表达式;改变循环变量的表达式){
循环体;
}
-
执行顺序
- 声明循环变量(只做一次)
- 判定循环表达式,如果表达式的结果是false,则结束整个for循环。
- 如果表达式的结果是true,则执行循环体一次,执行改变循环变量的值;
- 判定循环表达式,以此类推。
- for循环执行完毕之后,执行后续代码。
-
注意事项
- 对于普通的for循环而言,循环变量外界是无法访问的。(后续讲解)
- 对于for循环而言,只要保证第一个是声明循环变量,对于循环变量的类型是没有要求的,也就也 为着可以是基本数据类型也可以是引用类型。
- 三个循环之间的区别
- for可以确定循环次数的
- while确定循环停止条件
- do-while先执行循环体一次