大家好,以下程序输出不了解可以任何机构解释
我打破了标签声明。我使用带有标签中断语句的3循环。
public static void main(String[] args) {
int i=10,j=10,k=10;
//Loop:
while(i!=0)
{
System.out.println("i : "+i);
iLoop:
while(j!=0)
{
System.out.println(" j : "+j);
j--;
//iLoop:
while(k!=0)
{
System.out.println(" k : "+k);
k--;
i--;
break iLoop;
//break jLoop;
//break Loop;
}
}
}
}
输出就是这个
i : 10
j : 10
k : 10
i : 9
j : 9
k : 9
i : 8
j : 8
k : 8
答案 0 :(得分:1)
来自文档 -
An unlabeled break statement terminates the innermost switch, for, while,
or do-while statement, but a labeled break terminates an 'outer statement'.
这意味着外部while循环将被破坏。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
但不建议使用标签。
答案 1 :(得分:1)
因为您已根据j
标记了循环,所以当您调用带标签的break语句时,它会跳出该循环并转到i
循环的下一次迭代。所以,输出对你所拥有的是有意义的。如果我们没有使用标签,并且有一个正常的break语句,那么每次迭代都不会看到i
输出。正如其他人所说,尽量不要使用标签,因为正如您亲身经历的那样,它们令人困惑,难以阅读(容易错过),并且可以使用更直接的技术轻松取代。