while

while(){}, 括号内的表达式为true 就执行{}

do-while

do-while ,就算括号内的表达式为false,也会执行一次{}

laber 打标签(不常用)

可以试别的词, 就是能让continue或者break跳到指定位置

  1. // control/LabeledFor.java
  2. // 搭配“标签 break”的 for 循环中使用 break 和 continue
  3. public class LabeledFor {
  4. public static void main(String[] args) {
  5. int i = 0;
  6. outer: // 此处不允许存在执行语句
  7. for(; true ;) { // 无限循环
  8. inner: // 此处不允许存在执行语句
  9. for(; i < 10; i++) {
  10. System.out.println("i = " + i);
  11. if(i == 2) {
  12. System.out.println("continue");
  13. continue;
  14. }
  15. if(i == 3) {
  16. System.out.println("break");
  17. i++; // 否则 i 永远无法获得自增
  18. // 获得自增
  19. break;
  20. }
  21. if(i == 7) {
  22. System.out.println("continue outer");
  23. i++; // 否则 i 永远无法获得自增
  24. // 获得自增
  25. continue outer;
  26. }
  27. if(i == 8) {
  28. System.out.println("break outer");
  29. break outer;
  30. }
  31. for(int k = 0; k < 5; k++) {
  32. if(k == 3) {
  33. System.out.println("continue inner");
  34. continue inner;
  35. }
  36. }
  37. }
  38. }
  39. // 在此处无法 break 或 continue 标签
  40. }
  41. }

输出结果

  1. i = 0
  2. continue inner
  3. i = 1
  4. continue inner
  5. i = 2
  6. continue
  7. i = 3
  8. break
  9. i = 4
  10. continue inner
  11. i = 5
  12. continue inner
  13. i = 6
  14. continue inner
  15. i = 7
  16. continue outer
  17. i = 8
  18. break outer

switch

  1. switch(integral-selector) {
  2. case integral-value1 : statement; break;
  3. case integral-value2 : statement; break;
  4. case integral-value3 : statement; break;
  5. case integral-value4 : statement; break;
  6. case integral-value5 : statement; break;
  7. // ...
  8. default: statement;
  9. }

switch的参数可以试整数或者string(只能是这两种), 如果参数跟case 后面的蚕食相等,则走到case对应的方法里, 如果都不满足,则最后会走到default的方法里, 然后退出switch, 观察能发现;break;, 它的存在 会控制我们直接不往后执行, 如第一条 参数跟integral-value1相等, 触发方法 直接跳出switch, 如果没有break,则还会继续往后进行,判断跟case2是否相同, default默认是带break的, 但是可以省略