変数を学んだあとは、「配列(はいれつ)」についても学習しておきましょう。
配列を使うことで、より複雑なデータを扱うことができるようになります。
仕事であっても趣味であっても、プログラミングをするうえで配列の理解や操作を覚えることは必須です。
ここで配列についてしっかり理解し、いつでも扱えるよう準備しておきましょう!
もくじ
配列とは
配列とは、「たくさんのデータを格納するための箱」のことです。
配列は、変数の集合体のように扱うことができます。
たくさんの箱が横にずらーっと並んでいる様子をイメージしてもらえるといいかもしれません。
配列を理解するために抑えておくポイントは、「添字(そえじ)」と「要素(ようそ)」です。
難しそうに感じるのは名前だけなので、深く考え過ぎずにどんどん進みましょう!
配列の添字(インデックス)とは
配列は「箱が並んでいるイメージ」とお伝えしましたが、その箱1つ1つに好きな名前をつけることはできません。
そのかわり、「0」から始まる「添字(インデックス)」と呼ばれる番号が自動でつけられます。
この添字を使うことによって、箱の中の値を覗いたり、取り出したりすることができるようになるのです。
配列の要素とは
配列は、たくさんの箱を持っています。
そして、その箱1つ1つに値を格納することができます。
この格納されている値のことを「要素」と呼びます。
「箱の中に入っているものを要素と呼ぶんだな~」くらいの認識で大丈夫です。
配列の宣言と初期化
配列の使い方も、プログラミング言語によって少し違ってきます。
たとえば、C言語の場合、配列を使うためには「宣言」が必要になります。
これは、あらかじめ「配列に格納できる要素数を決めておかなければいけない」というルールがC言語にはあるからです。
ただ、配列の宣言と同時に値を入れる「初期化」を利用することで、1行にまとめることもできます。
// 配列の宣言
int numbers[2];
// 配列の初期化
int numbers[2] = [10, 100];
// 配列の初期化
int numbers[] = [10, 100];
最初の例は、「要素を2つ持っているint型の配列」を宣言しています。
「型」「宣言」「初期化」については、こちらの記事に詳しくまとめてるので、どうぞ。

2つ目の例は、要素数が「2」の配列を用意し、「10」と「100」の値をそれぞれの箱に格納しています。
この配列の中身は
添字が「0」で、要素は「10」
添字が「1」で、要素は「100」
になります。
添字は「0」から自動で番号が振られるため、こちらで指定する必要はありません。
3つ目は要素数を指定していませんが、2つ目とまったく同じ内容になります。
要素数を省略して初期化することで、格納している要素の数が自動的に要素数になるのです。
ここまで読んで、「何を言っているのかわからない…」という方も安心してください。
もっと簡単に配列を理解できる「Ruby言語」の例も紹介しておきます。
# 配列の初期化
numbers = [10, 100]
上を見てもらうとわかるとおり、Rubyでは型や配列の宣言がないため、変数に配列を代入するだけで簡単に使うことができます。
今回はあくまで配列の概要説明がメインなので、これ以降はC言語ではなく、シンプルでわかりやすいRuby言語を例に説明していくことにしましょう。

配列の格納と出力
配列に値を格納したり、出力したい場合は、以下のように添字を使って操作します。
# 配列を変数に代入
fruits = ['apple', 'orange']
# 「'apple'」を出力
fruits[0]
# 「'orange'」を出力
fruits[1]
# 「'melon'」を格納
fruits[1] = 'melon'
# 「'melon'」を出力
fruits[1]
二次元配列や多次元配列とは
「二次元配列」とは、配列の中にさらに配列を入れたものを指します。
このように、配列を2つ以上入れた配列のことを「多次元配列」と呼びます。
これは見てもらったほうが早いですね。
# 配列
fruits = ['apple', 'orange']
# 「'apple'」を出力
fruits[0]
# 二次元配列(多次元配列)
fruits = [
['apple', 100],
['orange', 200]
]
# 「['apple', 100]」を出力
fruits[0]
# 「'apple'」を出力
fruits[0][0]
# 「200」を出力
fruits[1][1]
# 多次元配列
fruits = [
'empty',
[
['apple', 100],
['orange', 200]
]
]
# 「'empty'」を出力
fruits[0]
# 「['orange', 200]」を出力
fruits[1][1]
# 「'orange'」を出力
fruits[1][1][0]
多次元配列は数が増えるほど、どんどん複雑になり、読みづらくなります。
連想配列(ハッシュ)とは
配列のほかにも「連想配列(ハッシュ)」という、とっても便利なものがあります。
連想配列と配列の大きな違いは、「添字」ではなく「キー」を使うところです。
配列の場合、「0」や「1」などの添字が自動で振られますが、連想配列では「name」や「price」のような好きな文字列をキーに設定できるため、複雑な構造になっても、多次元配列より読みやすいなどのメリットがあります。
ちなみにRubyの場合は、配列を代入する際の記号「[](ブラケット)」が、連想配列では「{}(ブレース)」に変わります。
言語によって、配列と連想配列とで書き方が多少違いますが、ここではあまり重要でないのでカットします。
では、果物の色や金額をまとめて扱いたいときの場合を見てみましょう。
# 配列
apple = ['red', 100]
# 「'red'」を出力
apple[0]
# 連想配列(ハッシュ)
apple = {
'color' => 'red',
'price' => 100
}
# 「'red'」を出力
apple['color']
# 二次元配列
fruits = [
['red', 100],
['green', 200]
]
# 「'green'」を出力
fruits[1][0]
# 二次元連想配列
fruits = {
'apple' => {
'color' => 'red',
'price' => 100
},
'melon' => {
'color' => 'green',
'price' => 200
}
}
# 「'green'」を出力
fruits['melon']['color']
どうでしょう?配列に比べ、連想配列には意味を持ったキーがついているため、何のデータが格納されているのかわかりやすいですよね。
果物名リストなどを作る場合は、配列でも問題ないのですが、上のように果物の情報をまとめて持ちたい場合などは、連想配列のほうが圧倒的に見やすいです。
まとめ
- 配列とは、たくさんのデータを格納する箱
- 添字(インデックス)とは、箱につけられた番号
- 要素とは、箱に格納されている値
- 二次元配列や連想配列がある
- 連想配列は添字のかわりにキーを使う
- データ構造が複雑な場合は連想配列が見やすい
配列について、Rubyを例にざっくり説明しました。
配列の細かい使い方については、自分の覚えたい言語でしっかり学習するといいでしょう。
もし、あなたがどのプログラミング言語で勉強を始めるか迷っているのであれば、僕は迷わずRubyをおすすめします。やっぱり、シンプルで理解しやすいですからね。

ほかにも、言語に関係なく学べるプログラミングの基礎をまとめているので、気になる方はぜひ読んでみてください。
またね、キツネ(@kitaaaa_kitsune)でした!
