Почему это вложено для l oop циклов бесконечно (java)? - PullRequest
2 голосов
/ 18 марта 2020
public class test {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            System.out.println(i);

            for (i = 0; i < 1; i++) {
                System.out.println(i);
            }
        }
    }
}

Ответы [ 2 ]

6 голосов
/ 18 марта 2020

Вы используете одну и ту же переменную l oop i для внешнего и внутреннего циклов.

Внутренний l oop сбрасывает i в 0 и увеличивает его до 1, а затем внешний l oop увеличивает его до 2, но он никогда не может превысить 2 (поскольку при следующем выполнении внутреннего l oop он снова будет сброшен до 0 ), поэтому внешний l oop никогда не заканчивается.

Используйте другую переменную для внутреннего l oop:

for (int i = 0; i < 3; i++) {
    System.out.println(i);
    for (j = 0; j < 1; j++) {
        System.out.println(j);
    }
}
1 голос
/ 18 марта 2020

Ваш внутренний для l oop имеет то же переменное использование, которое используется в вашем внешнем для l oop, поэтому он переходит к бесконечному l oop, внесите изменения во внутренний для l oop, просто поставьте int front j.

for (int j = 0; j < 1; j++) {
    System.out.println(j);
}
...