今回も問題を解いていきましょう。
問題
次のプログラムを実行した場合の出力はどれでしょうか?正しい選択肢を選んでください。
public class ArrayTest {
public static void main(String[] args) {
int[] numbers = new int[5];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
System.out.println(numbers[4]);
}
}
選択肢
- A. 0
- B. 50
- C. コンパイルエラー
- D. 実行時エラー
答えと解説
回答を見る
答え
A. 0
解説
解説のポイント:
- 配列のデフォルト値
- 配列の初期化とメモリの役割
Javaで配列を宣言すると、その配列の各要素はデフォルト値で初期化されます。int型では、デフォルト値は0となります。
このコードでは、5つの要素を持つint型配列numbersが宣言され、その内の4つの要素が値で初期化されています。しかし、5つ目の要素numbers[4]は初期化されておらず、デフォルト値の0が出力されます。
基本説明:
Javaの配列はゼロから始まるインデックスを使用し、定義されたサイズでメモリに連続して配置されます。これにより、配列の要素を効率的に格納・取得することが可能です。
誤答理由:
選択肢Bは誤りです。numbers[4]は初期化されていないため、50ではなくデフォルト値が出力されます。選択肢CとDも誤りです。本コードはコンパイルおよび実行に問題ありません。
つまずきポイント:
初期値やデフォルト値の理解不足がつまずきやすい点です。Javaでは他の型も同様のデフォルト値があるため、それぞれを知っておくことが重要です。
発展知識:
配列は固定サイズですが、ArrayListを使用することで動的にサイズを変更可能なリストを扱えます。ArrayListではnullが初期値として扱われ、NullPointerExceptionの理解も求められます。