Java语法-分支结构&循环结构
一、流程控制语句结构
1、顺序结构:从上往下执行,上一句执行完才轮到下一句,逐条执行
2、分支结构:只执行其中的一个分支,看条件执行
3、循环结构:重复执行某些语句
二、分支结构
1、条件判断:if…else
2、选择结构:switch…case
三、循环结构
1、for
2、while
3、do…while
4、foreach循环(增强for)
一、分支结构:if-elseif-else
1、语法结构:
if ( 条件表达式1 ){
当条件表达式1成立时,为true时,需要执行的语句块1;
} else if( 条件表达式2 ){
当条件表达式2成立时,为true时,需要执行的语句块2;
} 【else if( 条件表达式3 ){
当条件表达式3成立时,为true时,需要执行的语句块3;
} 】【 else{
当以上所条件都不成立时,需要执行的语句块n+1;
}】
2、执行特点:
- 先判断条件表达式1,如果条件表达式1成立,就执行语句块1,剩下的条件就不看了,语句块也不执行了。
- 如果条件表达式1不成立,接着判断条件表达式2,如果条件表达式2成立,就执行语句块2,剩下的条件表达式3…就不看了
- 依次类推
- 当所的条件表达式都不成立,如果此时还存在一个单独的else,那么就执行else中的语句块
- 不管怎么样,整个的if…else if…只会执行一个分支
3、说明:
- 所条件表达式的类型必须是boolean值 boolean值几种:(1)布尔变量(2)比较关系表达式(3)逻辑表达式
- 当{}中的语句只一句时,{}是可以省略,习惯上(建议保留。
- 当多个条件是互斥关系,那么顺序可以调整,如果是包含关系,那么小上大下
4、嵌套
原则:外层的条件成立时,才会看内层的条件
二、分支结构:switch-case-break-default
1、语法结构:
switch(表达式){
case 常量值1:
语句块1;
【break;】
case 常量值2:
语句块2;
【break;】
.....
[default:
语句块n+1;
[break;]
]
}
2、执行过程:
-
“入口”:
-
(1)如果switch()中表达式的值与某一个case后面的常量值匹配,就从这个case进入,一直往下执行,直到“出口”
(2)如果所case都检查过了,都不匹配,看是否存在default,如果就从default进入,一直往下执行,直到“出口”
“出口”:
-
(1)switch的}括号,自然出口
(2)遇到break;
3、要求:
(1)表达式的类型:四种基本数据类型:byte,short,int,char、2种引用数据类型:枚举(JDK1.5)、String(JDK1.7)
(2)case后面必须是常量值
(3)case后面的常量值的类型要与switch()中表达式的类型一致或兼容
(4)case后面的常量值不能重复
4、if…else和switch…case的选择
(1)所情况都可以使用if…else
(2)当条件是常量值的等值判断时,使用switch效率更高,可读性更好
三、循环结构:for
1、语法结构:
for(【初始化表达式①】; 【循环条件表达式②】; 【迭代表达式③】){
循环体④:需要重复执行的语句块
}
说明:两个分号不能省略,也不能多了
2、执行的过程:
第一步:初始化表达式①
第二步:循环条件表达式②
第三步:如果条件成立,就执行循环体语句④。
第四步:执行迭代表达式③
第五步:回到第二步,直到条件②不成立,就结束。
3、执行的特点:
(1)for循环有可能一次都不执行
(2)适用于次数必须有规律和明显的情景
四、循环结构:while
1、语法结构:
while(循环条件表达式①){
循环体②:需要重复执行的语句块
}
2、执行过程:
第一步:判断循环条件① 第二步:如果条件成立,就执行循环体语句②,执行完循环体语句就回到第一步
如果条件不成立,就直接结束while循环
3、执行特点:
(1)while循环可能一次都不执行
(2)一般适用于循环次数不明显的
五、循环结构:do…while
1、语法结构:
do{
循环体①;
}while(循环条件表达式②);
2、执行过程:
第一步:先执行循环体语句①
第二步:判断循环条件②
第三步:如果条件成立,再次执行循环体语句①,执行完循环体语句就回到第二步
如果条件不成立,就直接结束整个do…while
3、执行特点:
(1)循环体语句至少执行一次,满足这种特征时,可以考虑使用do…while
4、三种循环的区别和选择for、while、do…while
(1)for适用于:起始值和终止值比较清楚,次数比较明显的循环
(2)当循环条件明确,即清楚什么时候循环什么时候结束循环,次数不明确,优先考虑while和do…while
(3)while和do…while的选择:如果循环体至少执行一次,选择do…while,也可以使用while(true)+break