Java 在for循环中继续使用标签
所以我在努力,我被困在69号。代码如下:Java 在for循环中继续使用标签,java,for-loop,continue,Java,For Loop,Continue,所以我在努力,我被困在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) { cont
@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, __);
}
@Koan
public void forLoopContinueLabel(){
整数计数=0;
外标签:
对于(int i=0;i<6;i++){
对于(int j=0;j<6;j++){
计数++;
如果(计数>2){
继续外标签;
}
}
计数+=10;
}
//标签上的“继续”是什么意思?
//执行什么?程序流在哪里继续?
资产质量(计数);
}
assertEquals
检查答案是否正确-它会发送KOAN两个参数,以及它们是否与您匹配。例如,如果一个人编写了assertEquals(3+3,6)
,那么它将是正确的
双下划线表示替换ME
。在Koans应用程序中,它说我需要用8替换下划线,但我不清楚continue outerLabel
是如何工作的
所以我的问题是:为什么计数8?
提前谢谢。任何帮助都将不胜感激。
继续使用外部标签代码>强制跳过第二个,以执行
尽管
的第二个打算迭代6次,但当i==0时,它实际上只迭代3次,对于i>0
则迭代一次
只有当i为0时,j才是0,1,2
对于剩下的5,i的唯一j是0
1*3+5*1=8
或
有一点是这样的:一个带标签的continue语句跳过了用给定标签标记的外部循环的当前迭代。您希望得到什么?还有一点更详细的解释:一旦您的count变量大于2(当i
为0而j
为2时会发生这种情况)行continue outerLabel
将始终跳出到循环的开头(跳过count+=10
),然后迭代直到i
变为6(计算迭代次数,您将看到count
的值为8)可能重复“为什么这个问题值得投否决票?”--因为您本可以研究“continue
和标签”的文档化功能,所以您的意思是对i==0
进行3次研究。
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