Созданный ниже код во время игры с петлями. В приведенном ниже коде значения Fibonacci хранятся в массиве, а затем печатаются с использованием циклов.Улучшенное исключение для петли
int [] numbers;
numbers = new int[25];
numbers[0] = 1;
numbers[1] = 1;
System.out.println("Initializing the array values");
for(int i = 2; i < numbers.length; i++)
{
numbers[i] = numbers[i-1] + numbers[i-2];
}
System.out.println("Printing out Fibonacci values");
for(int i = 0; i < numbers.length; i++)
{
System.out.print(numbers[i] + ", ");
}
Приведенный выше код работает нормально. В первый раз, когда я собрал его вместе, я использовал расширенный цикл для печати значений (второй для цикла в коде). Это компилируется отлично, но когда я запускаю его, я получаю следующее:
Initializing the array values
Printing out Fibonacci values
1, 1, 2, 3, 8, 34, 377, 17711, Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 34
at ArrayDemo.main(ArrayDemo.java:21)
Я не понимаю, что пошло не так. Изменение второго цикла не должно изменять значения (вы заметите, что значения фибоначчи неверны (т. Е. Отсутствуют значения)). И я не понимаю, почему простой расширенный цикл будет пропускать индексы. Теперь это не очень большое дело, потому что это не проект или что-то еще, это просто задевает меня, что я не могу понять, почему он это делает. Любые подсказки?
Усиленная петля только выглядела так:
for(int i : numbers)
{
System.out.print(numbers[i] + ", ");
}
Спасибо. Кратко и легко понять. –