Java 标记为“中断”和“继续”的功能是否相同?

Java 标记为“中断”和“继续”的功能是否相同?,java,Java,我确信“正常中断”和“继续”的功能是不同的。但当使用标签时,这些功能似乎是相同的。在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 Messag

我确信“正常中断”和“继续”的功能是不同的。但当使用标签时,这些功能似乎是相同的。在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");
    }
}
label1:

对于(inti=0;iNo),它们是不同的

标记的break立即退出命名循环。标记的continue结束当前迭代,但除非其保护条件失败,否则不会退出循环。这与常规break和continue语句完全类似

break label1;
这将立即退出外部循环

continue label2;

这将退出内部循环并进入外部循环的下一个迭代。

否。它们在功能上绝对不同

continue label2;
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()));

至少不要发布除了您要问的问题之外的错误代码。