java-继续/中断时不必要的标签

我对执行下一个代码感到困惑:

        label:
        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0) continue;
            if (i == 99) {
                continue label;
            }
            System.out.println("i = " + i);
        }

我希望这个循环是无限的.但不是.值为99时-退出程序.我尝试与“继续”和“中断”运算符一起使用,但仍然没有得到预期的结果.

我只是试着理解为什么这个循环不是无限的,我将如何做呢?

输出:

i = 1
i = 3
......
i = 93
i = 95
i = 97

Process finished with exit code 0

解决方法:

继续继续标记的循环,这不涉及将i重置为其初始值;因此,您所做的任何事情都无法阻止i的增加,直到i达到100并且循环终止.是的,您是正确的,不需要标签.

要使其无限,只需在循环内重置i,无需标签或继续:

for (int i = 0; i < 100; i++) {
    if (i == 99) {
        i = 0;
    }
    System.out.println("i = " + i);
}

或者也许这样,它输出99然后再为0并继续运行:

for (int i = 0; i < 100; i++) {
    System.out.println("i = " + i);
    if (i == 99) {
        i = -1;
    }
}

或者,如果由于某种原因,您真的很想继续执行此操作,则需要第二个外部循环:http://ideone.com/ofgpK3

label:
while (true) {
    for (int i = 0; i < 100; i++) {
        System.out.println("i = " + i);
        if (i == 99) {
            continue label;
        }
    }
}
上一篇:java-如何在一个循环中重新组合条件?


下一篇:循环的不同行为