Как перезапустить цикл do while после определенного количества итераций - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть цикл do while

int maxItter = 20;
int index = maxItter;
do {
    index --;
    int itterNum = maxItter-index;

    //stuff

} while (index > 0);
index = index + 1;

Где maxItter равно максимальному числу итераций, а itterNum - текущая итерация, цикл do while включен.

После20 итераций, я хочу, чтобы «itterNum» перезапускался с 0

Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

Вы, вероятно, просто хотите использовать по модулю.Можно также упростить это с помощью цикла for

int maxIter = 20;
for (int index = 0;; index++) {
    int iterNum = index % maxIter;
    //stuff
}
0 голосов
/ 25 сентября 2019

Может быть n подходов,

public class Main {
    public static void main(String[] arg) {
        int maxItter = 20;
        int index = maxItter;
        // how many times you want to restart the loop
        int numberOfRestart = 10;
        do {
            index --;
            int itterNum = maxItter-index;
            if(index == 0) {
                index = maxItter;
                numberOfRestart --;
            }
            if(numberOfRestart == 0) {
                break;
            }
        } while (index > 0);
        index = index + 1;
    }
}
0 голосов
/ 25 сентября 2019

Надеюсь, я правильно понял ваш вопрос.В этом случае вы получите бесконечный цикл:

public static void main(String[] args) {
    int maxItter = 20;
    int index = maxItter;
    do {
        index --;
        int itterNum = maxItter-index;

        //stuff

        if (itterNum == 20) {
            index = 20;
        }
        System.out.println(itterNum + " " + index);
    } while (index > 0);
    index = index + 1;
}
...