実行時に「インデックス配列が範囲外です」というエラーが表示されますが、どこにあるのかわかりません。このプログラムは、25 個の乱数を取り、それらを偶数と奇数に分けて、別々のグループを表示すると想定しています。最初の for ステートメントをデバッグしましたが、2 番目の for ステートメントは問題ありませんが、理由がわかりません。2 つの配列要素を互いに等しくすることはできませんか?
public class EvensandOdds {
public static void main(String[] args) {
int i;
int countEven = 0;
int countOdd = 0;
int num;
int numEven = 0;
int numOdd = 0;
int [] evenNum;
int [] oddNum;
int [] ranNum = new int[25];
for (i = 0; i <= 24; i++) {
num = (int) (100 * Math.random());
ranNum[i] = num;
if (num % 2 == 0) {
numEven += 1;
} else numOdd += 1;
}
evenNum = new int[numEven];
oddNum = new int [numOdd];
for (i = 0; i <= 24; i++) {
if (ranNum[i] % 2 == 0) {
evenNum[countEven] = ranNum[i]; //This separates the two groups into different arrays. Is this a valid statement?
countEven += 1;
} else oddNum[countOdd] = ranNum[i];
countOdd += 1;
}
System.out.print("Your even numbers are: \n");
for (i = 0; i <= countEven; i++) {
System.out.print(evenNum[i]);
}
System.out.print("Your odd numbers are: \n");
for (i = 0; i <= countOdd; i++) {
System.out.print(oddNum[i]);
}
}
}