我对执行下一个代码感到困惑:
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;
}
}
}