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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵