1行で宣言した配列の次元
出力はどれか。
public class Main {
public static void main(String[] args) {
int[] a, b[];
a = new int[2];
b = new int[3][1];
System.out.println(a.length + b.length);
}
}
- A
5 - B
23 - C コンパイルエラーになる
- D 実行時に例外が発生する
正解と解説を見る
正解: A
- A: a は int[] で長さ 2、b は int[][] で長さ 3 です。2 + 3 = 5 です。
- B: length は int なので、数値として足し算されます。
- C:
int[] a, b[];では b が2次元配列になるので、new int[3][1]を代入できます。 - D: 正しく宣言・生成しているので例外にはなりません。
ポイント
int[] a, b[];では a がint[]、b がint[][]です。型の後ろの[]は全員に、変数名の後ろの[]はその変数だけに付きます。
「配列 (一次元配列、二次元配列) の宣言、インスタンス化、初期化および使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)