流程控制语句分类
顺序: 从上而下顺序执行
分支:根据条件不同,执行不同的语句
循环: 重复执行某些操作
分支语句
单分支
if(boolean){
//只有一条语句,可以省略大括号
}
双分支
if(boolean){
}else{
}
多分支
多重if
//只执行一个分支,其他条件不再判断执行
if(boolean){
}else if(boolean){
}else if(boolean){
}else{
}
switch
- 每个case都要带 breank; 没有break,会继续往下执行,无论与case的值是否相等,直到遇到break。
- default可以没有;
- 表达式可以取的值:byte short int char String enum
- 表达式的类型 与 case 的常量值类型要相符
- default不一定要放在最后,可以放在前面或case中间,但是作用不变。
break 非常重要switch(表达式){
case 值1: 语句;break;
case 值1: 语句;break;
case 值1: 语句;break;
default: 语句;break;
}
@Test
public void test_9() {
int no =2;
switch (no){
case 1:
System.out.println("a");
case 2:
System.out.println("b");
case 3:
System.out.println("c");
case 4:
System.out.println("d");
case 5:
System.out.println("e");
default:
System.out.println("default");
}
}
b c d e default
分支嵌套
各种分支都可以嵌套。
循环结构
循环分类:固定循环次数(for循环) 和 非固定循环次数(while/do-while)
for循环
for(初始语句; 循环条件; 修改循环条件){
}
执行顺序:初始语句 —> 循环条件—>循环体—>修改循环条件—>循环条件—>循环体—>…
注意: 初始语句只执行一次。
while循环
先进行条件判断
while(boolean){
//修改循环条件,防止形成死循环
}
do while循环
后条件判断,也就是没有条件判断,先执行一次循环体的代码
do{
//修改循环条件,防止形成死循环
}while(boolean);
break 和 countinue
- break 跳出循环,后面的循环不再执行
- countinue 跳出当前循环,后面的循环继续执行
- return可以跳出方法,当然循环也能结束
- break 和 countinue 只针对当前循环,双重循环的跳出需要用 break 标签名;或 countinue 标签名;
循环嵌套
循环之间可以嵌套。
循环标签
- 用于跳出多层循环,而不是当前循环。
- break 和 countinue 都可以用循环标签。
标签名:
for(){
for(){
break 标签名;
}
}