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结束循环体。