ループで再生中に以下のコードを作成しました。以下のコードは、フィボナッチ値を配列に格納し、forループを使用してそれらを出力します。Forループ例外の拡張
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] + ", ");
}
上記のコードは正常に動作します。最初に私は一緒に投げたが、私は強化されたforループを使って値を出力した(コードの2番目のforループ)。これはうまくコンパイルされますが、実行すると次のようになります。
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)
私は何がうまくいかなかったのですか? 2番目のループを変更しても値を変更すべきではありません(フィボナッチの値が間違っている(つまり欠損値))。そして、単純な拡張forループがインデックスをスキップする理由がわかりません。さて、これは本当に大きな問題ではありません。なぜなら、これはプロジェクトや何かのためではないからです。なぜそれがそれをやっているのか分かりません。すべての手がかりは?
強化されたforループは、このように見えます。
for(int i : numbers)
{
System.out.print(numbers[i] + ", ");
}
ありがとうございます。簡潔で分かりやすい –