我确信正常中断和继续的功能彼此不同。但是当使用标签时,这些功能似乎相同。在java语言中支持这些含糊不清的语句是不是很模糊?
label1:
for(int i=0; i<=m; i++)
{
for(int j=0; j<=n; j++)
{
System.out.println("My Message one");
break label1;
System.out.println("My Message two");
}
}
label2:
for(int i=0; i<=m; i++)
{
for(int j=0; j<=n; j++)
{
System.out.println("My Message one");
continue label2;
System.out.println("My Message two");
}
}
答案 0 :(得分:3)
不,他们不一样。
标记的中断立即退出指定的循环。标记为“继续”结束当前迭代,但不会退出循环,除非其保护条件失败。这与常规break和continue语句完全相似。
break label1;
这会立即退出外循环。
continue label2;
这退出内循环并进入外循环的下一次迭代。
答案 1 :(得分:0)
没有。它们的功能完全不同。
StringBuilder sb1 = new StringBuilder();
test1: for (int i = 0; i < 100; i++) {
sb1.append("test: " + i);
for (int j = i; j < 100; j++) {
if (j == 10) {
break test1;
}
}
}
StringBuilder sb2 = new StringBuilder();
test2: for (int i = 0; i < 100; i++) {
sb2.append("test: " + i);
for (int j = i; j < 100; j++) {
if (j == 10) {
continue test2;
}
}
}
System.out.println(sb1.toString().equals(sb2.toString()));
输出
false