ユーザーが値を入力した後、プログラムはサイズ5の配列に格納された値を出力します。ここで ArrayIndexOutOfBoundsException配列から値を出力するとき
は私のコードです:import java.util.Scanner;
public class Arrays_Qu1 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int arr[]= new int [5];
System.out.println("Enter a number");
int i;
for (i=0;i<arr.length;i++) {
arr[i]=sc.nextInt();
}
System.out.println(arr[i]);
}
}
私は5番目の値を入力した後、プログラムが終了しませんが、代わりにスロー:スレッド「メイン」java.lang.ArrayIndexOutOfBoundsExceptionで
例外: 5
ループの後の 'i'の値は何ですか? – Actorclavilis
あなたのコードをデバッグすれば、インデックス境界[0,4]外にあるループの後に 'i'が5になることがわかります。条件をチェックする前に 'i'をインクリメントするので、' i'を5に増やし、 'i
Thomas
I ++はあなたが思っているよりもう一度実行します。ループの最後の反復では、配列[]の代入の直後です。 – ABuckau