A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下:
  1. package Test;

  2. public class LabeledFor {
  3. public static void main(String args[]){
  4. int i=0;
  5. outer://设置外部标签
  6. for(;true;){
  7. inner://设置内部标签
  8. for(;i<10;i++){
  9. System.out.println("i="+i);
  10. if(i==2){
  11. System.out.println("continue");
  12. continue;
  13. }
  14. if(i==3){
  15. System.out.println("break");
  16. i++;
  17. break;
  18. }
  19. if(i==7){
  20. System.out.println("continue outer");
  21. i++;
  22. continue outer;
  23. }
  24. if(i==8){
  25. System.out.println("break outer");
  26. break outer;
  27. }
  28. for(int k=0;k<5;k++){
  29. if(k==3){
  30. System.out.println("contnue inner");
  31. continue inner;
  32. }
  33. }
  34. }
  35. }
  36. }
  37. }
复制代码
运行结果如下:
i=0
contnue inner
i=1
contnue inner
i=2
continue
i=3
break
i=4
contnue inner
i=5
contnue inner
i=6
contnue inner
i=7
continue outer
i=8
break outer
break会中断for循环,而且在抵达for循环的末尾之前,递增表达式不会执行。由于break跳过了递增表达式,所以在i==3的情况下
直接对i执行递增运算。在i==7的情况下,continue outer语句会跳到循环顶部,而却也会跳过递增,所以这里对i直接递增。
以前一直以为break会直接跳出外层循环,现在在晓得break只会中断内部迭代,回到外部迭代,如果在没有break outer语句,就没有办法从内层循环里跳出外部循
环。

评分

参与人数 1黑马币 +20 收起 理由
黄奕豪 + 20 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马