Java. Не выполняется условие цикла While

Мне понадобилось забить в массив ряд Фибоначчи до определённого значения, я попытался сделать это таким образом:

int[] arr = new int[40];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
int i = 2;
while (arr[i] < 4000000) {
    arr[i] = arr[i - 1] + arr[i - 2];
    System.out.println(arr[i]);
    i++;
}

При запуске условие цикла while не работает и массив забивается полностью, не останавливаясь на 4х миллионах, если добавляю в цикл:

if (arr[i] > 4000000) break;

То это помогает.

Почему не работает условие в цикле?


Ответы (1 шт):

Автор решения: Zryakys

Проблема решена, я невнимателен и ошибся в условии.

int[] arr = new int[40];
arr[0] = 1;
arr[1] = 2;
int x = 0;
for (int i = 2; arr[i-1] < 4000000; i++) 
    arr[i] = arr[i-1] + arr[i-2];
→ Ссылка