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梦想成真的一篇博客(已经三年没有发表过动态了)

你看看我这个基础测试:

  1. break:

    img

  2. continue:

    img

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

img

continue:

img

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

break是满足条件时结束整个循环,而continue是满足条件时结束循环中的当前这次循环,进入下一次循环

beak是跳出某个循环,continue是跳出某个循环里的一次循环,还有for循环里的表达式3,在continue时还是会执行的

break是满足条件时结束整个循环,而continue是满足条件时结束循环中的当前这次循环,进入下一次循环