除了这种编码风格的优点外,我还有以下代码:
public static void main(String argvs[]) {
int i, j;
Point_1: for (i = 1; i <= 10; i++) {
for (j = 1; j <= 10; j++) {
System.out.print(j);
if (j == 5)
continue Point_1;
}
System.out.println();
}
}
使用continue Point_1;
,输出为:12345123451234512345123451234512345123451234512345
但是break Point_1;
,输出为:
12345
发生了什么事?换句话说,continue label;
和break label;
之间有什么区别?
答案 0 :(得分:3)
与break
和continue
之间的差异相同。
continue Point_1;
表示“跳到标记为Point_1
的循环的下一次迭代的开始。”
break Point_1;
表示“突破标记为Point_1
”的循环。
以下是他们将如何转换为goto
语句:
int i, j;
Point_1:
for (i = 1; i <= 10; i++) {
for (j = 1; j <= 10; j++) {
System.out.print(j);
if (j == 5) {
// break Point_1; --> goto Break_Label;
// continue Point_1; --> goto Continue_Label;
}
}
System.out.println();
Continue_Label:
}
Break_Label:
答案 1 :(得分:1)
对,
您j==5
时要求java重新开始。
if(j==5) Continue Point_1
这意味着:检查j==5
是否为真Continue Point_1
。
Continue Point_1
表示:转到第二个i
并再次开始计算j
,当j
再次j==5
时,它会开始第三个i
j
1}}将i
计为5并重复j==5
次)(在这种情况下为10次,这就是为什么你会得到12345次)。
它的缺点是它要求java在{{1}}
时停止