Как начать для каждого цикла с самого начала? - PullRequest
1 голос
/ 05 июля 2019

Я пишу цикл For-each, а внутри цикла For-each я проверяю условие. Я хочу перезапустить цикл, если это условие выполняется. Есть ли какое-либо ключевое слово, например continue или break для запуска цикла с начала

 for (PoDetails items : ordersItemList) {
    if (nextPosition == incrementPosition) {
        if (some condition){
            break;
        } else{
            if (some condition){
                continue;
            } else{
                //I want to restart the for-each loop here
            }
         }
    } else {
        nextPosition++;
    }
 }

Ответы [ 2 ]

3 голосов
/ 05 июля 2019

Вы можете использовать индекс в цикле for. Затем, когда вам нужно перезапустить цикл, установите этот индекс на ноль.

for (int i = 0; i < ordersItemList.size(); i++) {
    PoDetails item = ordersItemList.get(i);
    if (nextPosition == incrementPosition) {
        if (some condition) {
            break;
        } else {
            if (some condition) {
                continue;
            }else{
                //I want to restart the for-each loop here
                i = 0; // set the index to zero here, then it will start the loop from the begnning
            }
        }
    } else {
        nextPosition++;
    }
}
1 голос
/ 05 июля 2019
OUTER: //outer label
for (PoDetails items : ordersItemList) {
    if (nextPosition == incrementPosition) {
        if (some condition){
            break;
        } else{
            if (some condition){
                continue;
            } else{
                continue OUTER:; // This will call the loop from OUTER:
            }
        }
    } else {
        nextPosition++;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...