LINEで現役エンジニアに直接質問してみよう!登録無料

プログラミングの配列とは?変数の集合体と添字、キー、初期化方法などを解説

プログラミングでデータを格納する方法として、変数の他に「配列(array)」というものがあります。

配列は一言で言うと、連続した変数(箱)の集まりです。集まったことで、すべての値に同じ処理をしたい時にとても重宝します。

プログラミングの配列とは?配列の意味

配列とは、一言でいうと連続した変数(箱)の集まりです。

通常、変数には1つの値しか入れることはできません

しかし、配列を使うとと箱の中に小分けの箱を入れて管理するような感じで、値をまとめて取り扱うことができます

この時、小分けした箱の事には、順番に「0」からの番号が付いています。値を取り出したり、入れたりする時は、この番号を使って操作します。

配列の要素とは?

配列とは、連続した変数(小分けの箱)の集まりという説明をしましたが、この1つ1つの小箱の事を「要素」と言います。

配列の添字とは?

配列とは、連続した変数(小分けの箱)の集まりという説明をしましたが、この1つ1つ小箱には1つ1つ名前をつけることはできません。

代わりに「0」から始まる自動的に付けられる番号で管理されます。これを「添字(インデックス)」といいます。

この番号を使って、値を取り出したり、入れたり、上書きしたりといった事が出来るようになります。

配列の要素数

配列の要素の数のことを「要素数」といいます。要素数は非常に重要です。なぜなら、要素の添字(インデックス)の数字は要素数をつかって算出されることが多いからです。

例えば、要素の最後の要素を取得したい場合はどのようにすればいいのでしょうか?

答えは「要素数 – 1」の添字でで取得することができます。

まだ、プログラムコードについて解説していませんが、下記のように「scores.length - 1」のような感じで要素数が使われるんだな。と覚えておきましょう。

int scores[] = [
    10,
    20,
    30,
    40,
    50
];
int last_score = scores[scores.length - 1
];

なお、Rubyで要素数を取得するには「〜〜.length」という書き方をします。

配列の使い道とメリット

配列は、同じ型の値を複数取り扱う時に便利です。特に、繰り返し処理を行う為によく使われます。

例えば、クラス全員のテストの点数や、毎日の売上金額を扱う時、同じ意味や性質の持つデータをすべての合計や平均を求めたりする場合に配列を使うと、プログラムコードがわかりやすく簡単になります。

ここで、実際のコードを見てみましょう。Rubyというプログラミング言語を使って書いてみます。

配列を使わないプログラムの例

配列を使わないでクラス全員の点数を変数のみを使って表現すると、下記のように人数が増えるに従って行数が増えていきます。

int score1 = 80
int score2 = 81
int score3 = 79
int score4 = 60
.
.
.
int score30 = 90

そして、この合計値を求めようとした場合、下記のように1つ1つ足し合わせるしかありません。

int sum_score = score1 + score2 + ... + score30;

これでは、人数が増えた時などに、大きな修正が必要になってしまいます。

配列を使ったスマートなプログラムの例

これと同じ役割を持つプログラムを書くと、下記のようになります。

int scores[] = {
    80,
    81,
    79,
    60, ...,
    90
};

先程は30行ほどになるべき部分が1行にまとまりました。更に計算部分は、下記のように修正箇所を少なく出来できます。

int sum_score = 0;
for(int i = 0; i < 30; i ++){
    sum_score += scores[i
    ];
}
printf("%d", sum_score);

これで、値の合計値が計算されます。

更に、平均値を算出したりも簡単にできます。

int average_score = sum_score / 30;

配列を使う時の注意点

配列を使う時の注意点がいくつかあります。

  • 配列には同じ型の値しか入れてはならない
  • 配列には同じ意味の持つ値を入れるようにする

「型」や「値」については、下記で詳しく説明しています。よかったらどうぞ

プログラミングの変数とは?型や箱などが分からない初心者向け解説

配列には同じ型の値しか入れてはならない

配列には、同じ型の値しか入れられません。

例えば、「整数型」と「文字列型」を持つ値を同時に同じ配列に入れることはできません。

配列は必ず同じ型の値で作成する必要があります。

配列には同じ意味の持つ値を入れるようにする

これは、1つの配列に「テストの点数、クラスの人数、年齢、性別」などを一色単に入れることはやめるようにする。という意味です。

実際にはそれらはただの整数値なので、入れることはできます。しかし、それぞれの数字の持っている意味が異なります。

配列を作ったところで、その後効率よく計算を行うことができなくなるので、これらは値の意味に応じて配列を複数に分けるようにしましょう。

配列の使い方

ここでは、先程の配列の解説を再度まとめて紹介します。

配列の使い方はプログラミング言語によって異なりますが、初心者が最初に学ぶであろうC言語で解説していきます。

C言語で配列を使う場合、「宣言」が必要になります。これは、「予め格納できる要素の数を決めて置かなければならない」というルールがあるからです(Rubyにはそのようなルールはありません => Rubyでの配列の取り扱い例はこちら)。

配列を宣言するには、次のようにデータの型と要素数を書きます。

 // 配列を使った書き方
int scores[
    30
];


// 比較: 配列を使わない書き方
int score1, score2, score3, score4, ..., score30;

ただ、C言語にも配列の要素数を入れなくても、コンパイルの段階で自動的に推測してもらえる書き方で「初期化」というものもあります。

int scores[] = {
    80,
    81,
    79,
    60, ...,
    90
};
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。