Java 循环/带中断/继续的标签
撇开这种编码风格的优点不谈,我有以下代码:Java 循环/带中断/继续的标签,java,Java,撇开这种编码风格的优点不谈,我有以下代码: 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_
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();
}
}
publicstaticvoidmain(字符串argvs[]){
int i,j;
点1:for(i=1;i与一般情况下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:
inti,j;
第1点:
对于(i=1;我转到Continue\u标签;
}
}
System.out.println();
“继续”标签:
}
断开标签:
与一般情况下的中断
和继续
之间的区别相同
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:
inti,j;
第1点:
对于(i=1;我转到Continue\u标签;
}
}
System.out.println();
“继续”标签:
}
断开标签:
是的,
当j==5
时,您要求java重新开始
if(j==5)
继续第1点
这意味着:检查j==5
是否为真继续点1
Continue Point_1
的意思是:转到第二个i
并再次开始计数j
,当j
为j==5
时,再次开始第三个i
计数j
到5并重复i
次(在本例中为10次,这就是为什么会得到10次12345)
break所做的是,当j==5
是的,
当j==5
时,您要求java重新开始
if(j==5)
继续第1点
这意味着:检查j==5
是否为真继续点1
Continue Point_1
的意思是:转到第二个i
并再次开始计数j
,当j
为j==5
时,再次开始第三个i
计数j
到5并重复i
次(在本例中为10次,这就是为什么会得到10次12345)
break所做的是,它要求java在j==5
时停止。为了您的程序员同事,请永远不要使用标签来打破循环。我做梦也想不到,这真的只是一种编程好奇心。为了您的程序员同事,请永远不要使用标签来打破循环。我做梦也想不到t、 这真的只是一个编程好奇心。为什么它保持迭代器i
和j
的值?它的工作原理与C中的标签不同?您希望它对变量的值做什么?好的for
循环都将它设置为i=1
和j=1
中断和继续e
的行为不像一个goto
?不,当它碰到标签时,它会返回到外循环,因此i
的值保持存在并增加,j
变量消失,在再次到达内循环之前不会再次初始化,所以它又是1。是的,它们的行为非常像goto代码>语句。break
就像goto
-ing出循环,continue
就像goto
-ing到循环体的末尾。为什么它会保留迭代器i
和j
的值?它的工作原理与C中的标签不同?你希望它对变量的值有什么作用?好的for
循环都将其设置为i=1
和j=1
break
和continue
不会像goto
那样工作?不,当它碰到标签时,它会返回到外循环,因此i
的值保持存在并递增,j
变量消失,并且不会出现在再次到达内部循环之前再次初始化,因此它再次为1。是的,它们的行为非常类似于goto
语句。break
类似于goto
-ing退出循环,continue
类似于goto
-ing结束循环体。