配列の例題

Java Silver の資格試験について、配列に関する問題です。
以下の問題解けますか?
以下のコードの内、コンパイルエラーとなるコードはどれか。 ① int[] a; ② int b[]; ③ int[][] c; ④ int d[][]; ⑤ int[] e[]; ⑥ int[][][] f; ⑦ int[][] g[]; ⑧ int[] h[][]; ⑨ int i[][][]; A:コンパイルエラーは発生しない B:⑤と⑦と⑧ C:②と④と⑨

ん~。
[]の位置で引っ掛ける問題かな・・・。
なんとなく見たことがない⑤と⑦と⑧がおかしいような気がするから、
答えは「B:⑤と⑦と⑧」だと思う!

残念。不正解です。
正解は「A:コンパイルエラーは発生しない」です。

コンパイルエラー発生しないのね・・・。
じゃぁ、例題のコード、いろんな配列の定義があるけどどれでも問題ないんだね。
多次元配列を表現する方法

そうだよ。
配列の変数定義では[]を使うけど、
この[]は「データ型の後ろ」か「変数名の後ろ」どちらにも記述することができるんだ!
そして、[]の数によって「多次元配列」を表現できるよ!
例えば、以下のコードでは[]が2つだから2次元配列、
int[][] a; int a[][]; int[] a[];
以下のコードでは[]が3つだから3次元配列を表現しているよ。
int[][][] f; int[][] g[]; int[] h[][]; int i[][][];
また、多次元配列は[]の数だけ作ることができるから、
4次元配列でも5次元配列でも生成可能できるんだ。

何次元でも配列を作れるのはすごいね。
あと、[]の位置は「データ型の後ろ」か「変数名の後ろ」だったらどっちでも記述できるんだね。
個人的にはデータ型の後ろに記述しているパターンをよく見るから、違和感を感じたよ。
ポイントまとめ

[]の位置はどちらにも記述できますが、
バラバラに記述すると可読性が悪くなりますから、
あまり実際のコードで使われることは少ないでしょう。
試験問題としては、[]の記述位置について問われるので、頭の片隅に置いておいてください。
それでは今回のまとめです。
- 配列の定義では[]を使って配列を定義できます。
- []の数によって多次元配列の次元が決まります。[][]のように2つ使用した場合は、「2次元配列」となります。
- []は「データ型の後ろ」か「変数名の後ろ」どちらにも記述することができます。
本日もお疲れ様でした。
コメント