继续 for 循环中的标签

Continue with a label in a for loop

所以我正在研究 Java Koans,但我卡在了 69 号。这是代码:

@Koan
public void forLoopContinueLabel() {
    int count = 0;
    outerLabel:
    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 6; j++) {
            count++;
            if (count > 2) {
                continue outerLabel;
            }
        }
        count += 10;
    }
    // What does continue with a label mean?
    // What gets executed? Where does the program flow continue?
    assertEquals(count, __);
}

assertEquals 检查答案是否正确 - 它会向 Koans 发送两个参数以及它们是否与您匹配。例如,如果有人写 assertEquals(3 + 3, 6) 就是正确的。

双下划线表示REPLACE ME。在 Koans 应用程序中,它说我需要用 8 替换下划线,但我不明白 continue outerLabel 是如何工作的。

所以我的问题是:为什么计数是 8?

提前致谢。任何帮助将不胜感激。

continue outerLabel;强制跳过第二个for.

虽然第二个for打算迭代6次,但实际上i==0时只迭代了3次,i>0.

时只迭代了一次
  • 仅当 i 为 0 时,j 为 0、1、2。
  • 剩下的5个i只有j是0
  • 1*3 + 5*1 = 8

或者

i   j  count
=   =  =====
0   0  0     count++
       1     count++
    1  2     count++
    2  3     count++; continue outerLabel
1   0  4     count++; continue outerLabel
:   :  :     :
5   0  8     count++; continue outerLabel