继续 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
所以我正在研究 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