qz1713840596 2022-01-30 20:50 采纳率: 66.7%
浏览 51
已结题

java便签for循环中出现 break和continue时的差别是 是否执行表达式3?

请教一下continue inner不是终止本次循环吗,为什么还会执行for循环的表达式3,i++,不是直接停止,返回标签位置吗,表达式3在循环体执行完之后才执行呀,按理说循环体都中止了,应该不会往后继续了呀,能不能解释下,请赐教,还有出现break后没有去执行for循环的i++,而在出现continue inner后却执行了for循环的i++,所以这是他们之间的差异还是我对代码的理解不对?这是俩个问题
话不多说上代码


public class age {
    public static void main(String[] args) {
        int i = 0;
        outer: // Can't have statements here
        for(; true ;) { // infinite loop
            inner: // Can't have statements here
            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++; // Otherwise i never
                    // gets incremented.
                    break;
                }
                if(i == 7) {
                    System.out.println("continue outer");
                    i++; // Otherwise i never
                    // gets incremented.
                    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;
                    }
                }
            }
        }
        // Can't break or continue to labels here
    }
    }

运行结果如下:

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

这个代码是摘自是wuding梦想成真的一篇博客(已经三年没有发表过动态了)

  • 写回答

4条回答 默认 最新

  • 尝试敲代码的逸二 2022-02-01 21:41
    关注

    你看看我这个基础测试:

    1. break:

      img

    2. continue:

      img

    顺便在我的好久之前的笔记找到的图,你看看,不过没画全,
    注意:我这里的表达式1是你的表达式2,我这里的表达式2是判断是否执行break/continue语句,没有把你的表达式3写进去,可以把表达式3理解成那条回往表达式1的线吧。
    break:

    img

    continue:

    img

    以上基础仅供参考,希望对楼主有帮助

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月10日
  • 已采纳回答 2月2日
  • 创建了问题 1月30日

悬赏问题

  • ¥15 需要数据库运行的图片
  • ¥15 如何获取vue-video-editor?
  • ¥100 vs2019 mfc程序如何实现64*64/48*48大小的真彩色工具栏
  • ¥15 全志v3s耳机音频输出口怎么外接功放
  • ¥15 华为ensp使用基本ACL限制公司网络访问
  • ¥15 帮我做下照片上的PLC题
  • ¥15 labview2022 使用modbus报缺少依赖?
  • ¥15 谷歌地图是不是不开通结算功能,api会使用不了哦
  • ¥15 unity腾讯云对象存储机型适配
  • ¥15 求全国交通咨询模拟代码,要求如下,可以完全在dev c++运行