C#入門⑪ 配列 ── たくさんのデータを、まとめて持つ
C#入門⑪ 配列 ── たくさんのデータを、まとめて持つ
前回まで、くり返し(for・while)をやってきました。
今回からは新しいテーマ。たくさんのデータをまとめて扱う配列(はいれつ)です。くり返しと組み合わさると、大きな力になります。
配列とは、同じ種類のデータを、まとめて入れられる箱です。
なぜ、まとめる必要があるのか
第2回で「変数は、データを入れる箱」とやりました。たとえば、3人のテストの点数を覚えるなら、こう書けます。
int score1 = 80;
int score2 = 95;
int score3 = 70;
3人ならいいですが、40人のクラスだったら? 変数を40個も用意するのは、現実的ではありません。
そこで使うのが、配列です。ひとつの名前で、たくさんのデータをまとめて持てます。
料理でいうなら、仕切りのある弁当箱のようなもの。ひとつの箱の中に、いくつもの仕切りがあって、それぞれにおかずが入っている。そんなイメージです。
書き方を見てみる
3人の点数を、配列にまとめてみます。
int[] scores = { 80, 95, 70 };
int[](int の後ろに角カッコ)は、「整数を、まとめて入れる箱」という意味です。scores という名前の箱に、80・95・70 の3つが入りました。
中身を取り出すときは、番号(インデックス)を使います。
Console.WriteLine(scores[0]); // 80
Console.WriteLine(scores[1]); // 95
Console.WriteLine(scores[2]); // 70
scores[0] は「scores の0番目」という意味です。
また「0から始まる」
ここで、第8回(for文)でも出てきた感覚が再登場します。
配列の番号は、0から始まります。
scores[0] → 80 (1番目だけど、番号は0)
scores[1] → 95 (2番目だけど、番号は1)
scores[2] → 70 (3番目だけど、番号は2)
「1番目が0番」というのは、慣れるまで本当に不思議です。でも、for文のときと同じ「0から数え始める」ルール。プログラミングではこれが基本だと、ここでも出てきます。
くり返しと組み合わせる ── ここが本領
配列が本当に強いのは、くり返し(for文)と組み合わせたときです。
40人いても、こう書けば全員分を表示できます。
int[] scores = { 80, 95, 70 };
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine(scores[i]);
}
実行すると、80・95・70 が順に表示されます。
ポイントは2つ。
scores[i]… カウンターiを番号に使うことで、0番、1番、2番…と順に取り出せるscores.Length… 配列の中身の個数(ここでは3)
i が 0,1,2 と変わりながら、scores[0], scores[1], scores[2] を順に取り出している。for文のカウンターが、配列の番号とぴったり噛み合うんです。
これが、第8回で「カウンターをうまく使うのがコツ」と書いた理由です。配列とfor文は、セットで真価を発揮します。
つまずきポイント
初心者が必ず一度はやるのが、存在しない番号を指定することです。
int[] scores = { 80, 95, 70 }; // 0番〜2番まで(3個)
Console.WriteLine(scores[3]); // 3番は無い!エラー
3個の配列なら、番号は 0・1・2 まで。3番は存在しません。なのに scores[3] と書くと、エラーになります。
「0から始まるから、最後の番号は『個数マイナス1』」。3個なら、最後は2番。この感覚に慣れるまでは、よく出るエラーです。出たら「番号、はみ出してないかな?」と疑ってみてください。
まとめ
配列は、同じ種類のデータをまとめて持つ箱。
int[] scores = { 80, 95, 70 };
Console.WriteLine(scores[0]); // 番号で取り出す(0から始まる)
- 番号(インデックス)は 0から始まる
.Lengthで個数が分かる- for文と組み合わせると、全部まとめて処理できる
次回は、配列によく似ているけれど、もっと柔軟な List(リスト) を紹介します。

