while
while(){}, 括号内的表达式为true 就执行{}
do-while
do-while ,就算括号内的表达式为false,也会执行一次{}
laber 打标签(不常用)
可以试别的词, 就是能让continue或者break跳到指定位置
// control/LabeledFor.java
// 搭配“标签 break”的 for 循环中使用 break 和 continue
public class LabeledFor {
public static void main(String[] args) {
int i = 0;
outer: // 此处不允许存在执行语句
for(; true ;) { // 无限循环
inner: // 此处不允许存在执行语句
for(; i < 10; i++) {
System.out.println("i = " + i);
if(i == 2) {
System.out.println("continue");
continue;
}
if(i == 3) {
System.out.println("break");
i++; // 否则 i 永远无法获得自增
// 获得自增
break;
}
if(i == 7) {
System.out.println("continue outer");
i++; // 否则 i 永远无法获得自增
// 获得自增
continue outer;
}
if(i == 8) {
System.out.println("break outer");
break outer;
}
for(int k = 0; k < 5; k++) {
if(k == 3) {
System.out.println("continue inner");
continue inner;
}
}
}
}
// 在此处无法 break 或 continue 标签
}
}
输出结果
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
i = 8
break outer
switch
switch(integral-selector) {
case integral-value1 : statement; break;
case integral-value2 : statement; break;
case integral-value3 : statement; break;
case integral-value4 : statement; break;
case integral-value5 : statement; break;
// ...
default: statement;
}
switch的参数可以试整数或者string(只能是这两种), 如果参数跟case 后面的蚕食相等,则走到case对应的方法里, 如果都不满足,则最后会走到default的方法里, 然后退出switch, 观察能发现;break;, 它的存在 会控制我们直接不往后执行, 如第一条 参数跟integral-value1相等, 触发方法 直接跳出switch, 如果没有break,则还会继续往后进行,判断跟case2是否相同, default默认是带break的, 但是可以省略