在增强型for循环中重复迭代

Oge*_*gen 3 java for-loop

定期循环

for (int i = 0; i < 10; i++) {
    // ...

    if (iWantToRepeat) {
        i--;
        continue;
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

增强了for循环

for (Foo f : Bar) {
    // ...

    if (iWantToRepeat) {
        // What can I put here?
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

有没有办法重复增强的for循环的迭代?我感觉可能有,因为它基于迭代器,如果我可以访问它们,我想我可以做到.

fab*_*ian 5

不,你不能.在每次迭代中,迭代器都会前进一步.但是,您可以使用do-while循环来获得相同的效果:

for (Foo f : Bar) {
    boolean iWantToRepeat;
    do {
        // ...
        iWantToRepeat = //...;
        // ...
    } while(iWantToRepeat);
}
Run Code Online (Sandbox Code Playgroud)