流程控制语句分类
顺序: 从上而下顺序执行
分支:根据条件不同,执行不同的语句
循环: 重复执行某些操作
分支语句
单分支
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;}
@Testpublic 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 标签名;}}
