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 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。