こんにちは。
Numata です。
今回は配列の要素の数え方について解説します。
配列を学習したときに必ず引っかかるのが、添え字の概念です。
indexとも呼ばれますね。
添え字は、Java学習を進めていっても、よく間違える箇所です。
しかし、仕組みを理解していれば、一瞬でエラーを解決することはできます。
この機に理解して、添え字に惑わされることはなくしましょう!
もくじ
部屋の数は1から数え、部屋番号は0からつけます
配列を学習する際に、下記2点を分けて考えましょう!
「部屋の数」 :配列の要素数
「部屋番号」 :配列の要素の番号
・部屋の数
配列を作るとき、必ず大きさ(部屋の数)を指定しなければなりません。
1 |
int array = new int[5]; |
上記式は、部屋数5コの配列が作成されます。
ここで注目すべきは、部屋を作るときには1から始まるということです。
部屋数1コの配列を作成したかったら、
1 |
int array = new int[1]; |
と宣言します。
部屋には、要素が入っていますよね。
つまり、部屋数=要素数になるのです。
・部屋番号
配列の部屋に入っている値を取り出したいときは、
部屋番号を指定します。
1 |
System.out.println(array[3]); |
この文が実行されると、
array という配列の3番の部屋に入っている値が取り出されます。
ここで注意したいのは、部屋番号は0から割り振られるということです。
例えば、部屋数5コの配列arrayが宣言されたとき、
1 |
int[] array = new int[5]; |
この配列の部屋番号は0~4です。
全部で5部屋のアパート(0号室~4号室)ができたイメージです。
部屋番号は一番前の部屋から、0から割り振られます!
部屋番号は0から割り振られるのに、配列の要素数は1から数える。
これが配列の初期によくあるミスです!
for文で回すときは、0から始めて、><を使いましょう!
以下例プログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Sample { public static void main(String[] args) { //部屋の数が100個ある配列を作る int[] array = new int[100]; //間違い例:iの値は1~100になる。100でエラー発生。 for (int i = 1; i <= array.length; i++) { array[i] = i; System.out.println(array[i]); } //正答例:iの値は0~99になる。 for (int i = 0; i < array.length; i++) { array[i] = i + 1; System.out.println(array[i]); } } } |
for文で配列を回すときは、正答例のように、
・i は0で宣言し
・< を使って範囲を指定
とすれば、エラーが出る間違いは格段に減ります!
部屋の数は1から数え、部屋番号は0からつけます
いかがでしたでしょうか。
大切なことなので最後にもう一度言います。
部屋の数は1から数え、部屋番号は0からつけます
これでもう添え字に迷うことはないでしょう!
最後までご覧いただき、ありがとうございました。
コメント