流程控制语句
1. 选择判断语句
1.1. if…else语句
if (布尔表达式) {
执行语句;
} else if (布尔表达式) {
执行语句;
……
} else {
执行语句;
}
1.2. switch语句
switch(expression){
case value1 :
//语句
break; //可选
case value2 :
//语句
break; //可选
……
default : //可选
//语句
break; //可选
}
- expression支持类型为int,String和枚举.(byte,short,char是通过自动转成int实现的 )
- case 后的值必须与expression的数据类型相同,而且只能是常量或者字面常量。
- 当expression的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
- 如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
- default 在没有 case 语句的值和变量值相等的时候执行。推荐写在末尾
2. 循环结构
2.1. while语句
while( 布尔表达式 ) {
//循环内容
}
当满足布尔表达式时,进入循环,执行语句,再次判断,直到不满足布尔表达式,退出循环。
2.2. do while语句
do {
//代码语句
}while(布尔表达式);
先执行循环语句,然后判断布尔表达式,满足后就再次执行,反之,退出循环。
2.3. for循环语句
for(初始化; 布尔表达式; 更新) {
//代码语句
}
执行顺序:初始化→布尔表达式→代码语句→更新→布尔表达式……
初始化可以声明一个或多个循环控制变量,也可以为空
2.4. for each语句
for(声明语句 : 表达式){
//代码句子
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与当前循环到的数组元素的值相等。
表达式:要访问的数组名,或者是返回值为数组的方法。
2.5. continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
2.6. break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
嵌套循环结构中,break 跳出最里层的循环结构,并且继续执行外层循环接下来的语句。
2.7. break和continue带label的用法
标签(label):用标识符和:
给代码块或是条件控制语句命名。
a:{
b: while(true) {
c: for(;;) {
d: if (true) {
break c;
}
}
continue b;
}
}
break label:跳出label命名的代码块,继续执行外部的代码。
continue label:跳过label命名的循环代码块的本次循环,进入下一次循环。
注意:以上两种语句的label命名的代码块只能是包含该语句的代码块。
a: do {
b: switch(1){
default:
break c; //不被c包含,无法跳出
}
continue c; //不被c包含,无法跳过
}while(true);
c: for(;;){}