質問: answer[b]){ //同じくanswer配列をまわして使用されてる数字が重複しているかチェック bite++; } } } } System.out.println(bite+"BITE-"+eat+"EAT"); } } ``` コンパイルは成功したのですが実行時に Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at Gamesystem.main(Gamesystem.java:6) と出て6行目の配列に何か問題がある、ということまでは分かったのですが、6行目に使っている2つの配列のインデックスaは5行目の拡張for文の変数なのでインデックスに問題は無いように思ったのですがどこがおかしくなっているのでしょうか? 使われている数字を当てた数だけ~BITE、さらに桁数も当てると~EATと表示したいです。 なのでこのプログラムでは実行時に「2BITE-1EAT」と表示できればいいのですが・・・・・ 回答よろしくお願いします!
回答: 拡張for文で回しているのはインデックス番号ではなく要素そのものです。 最初のループでpredictから取り出した数aは3で、長さ3しかなく番号2までしかない配列predictのインデックスにしたらアウトです。predict[3]は存在しないので。 だから拡張forではなく、普通のforでインデックスを使って回すしかありません。