【Ruby超入門コース】08.配列|変数を箱。配列をロッカーに例えて解説します

はじめに

こんにちは。キノコードです。
「【5分レッスン】Ruby超入門コース#08 配列」について説明します。

配列とは?

配列とは、複数のデータを格納することができるものです。
変数のレッスンで、変数は「箱」と説明しました。
例えるなら、変数は1つのデータしかいられない「箱」なのに対して、配列は複数のデータを入れることができる「ロッカー」です。
1列の配列のことを1次元配列といい、2列以上ある配列は多次元配列といいます。
配列の1つ1つの箱のことを要素といい、箱の数を要素数といいます。
配列のそれぞれの要素には、場所の情報が割り当てられています。
データが住んでいる住所のようなものです。
この住所には、インデックス番号というものが割り当てられています。
インデックス番号のことを「添え字」といったりもします。このレッスンでは、インデックス番号という名前で進めていきます。
一番左のインデックス番号は0から始まります。1から始まるわけではないので注意です。
そのため、1番最初のインデックス番号は「0」、2番目のインデックス番号は「1」、3番目は「2」、4番目は「3」といったように、インデックス番号は配列が格納されている「順番 - 1」となっています。。

配列の宣言

それでは、配列の作り方をみていきましょう。
配列の作り方を2つ紹介します。
Array.newメソッドを使う方法と、括弧を使って作る方法です。
まずは、Array.newメソッドを使う方法からみていきましょう。
書き方のきまりは次のとおりです。
変数 = Array.new(要素数)
まず、配列を代入する変数を書きます。
変数イコール、Array、ドット、小文字のnewを書いて丸括弧。丸括弧の中に要素数を書きます。
以上の書き方で、配列を作ることができます。
コードを書いてみていきましょう。

a = Array.new(3)

まず、どのようなコードを書くか説明します。
配列という英単語のarrayの前三文字をとったarrという変数に、’sato’,'suzuki','takahasi'という3つのデータを代入する配列を作ってみましょう。
これで要素数が3の配列ができました。

配列の要素の変更方法

配列の作り方の2つめです。角括弧を使う方法です。こちらの方が簡単です。
書き方のきまりは次のとおりです。
変数 = [データ1,データ2,….]
角カッコの中に、配列の要素のデータを記述していきます。
コードを書いて説明していきます。

a = Array.new(["sato", "suzuki", "takahashi"] )

p a[0]
p a[1]
p a[2]

角カッコの中にデータを直接記述します。
表示させてみましょう。
先ほどと同じ結果になりました。

a = ["sato", "suzuki", "takahashi" ]

a[1] = "tanaka"

p a[0]
p a[1]
p a[2] 

配列のデータの変更をしてみましょう。
要素を指定して代入をすればオッケーです。
配列の2番目のsuzukiをtanakaにしてみます。
2番めなので角括弧に書く要素数は1です。
実行してみましょう
2番めの要素が"suzuki"ではなく、"tanaka"になっていることが確認できました。

多次元配列

arr = [ ["sato","suzuki"],["takahashi","tanaka"] ]

p arr[0][0]
p arr[0][1]
p arr[1][0]
p arr[1][1]

次に多次元配列についてみていきましょう。
多次元配列とは、2列以上ある配列のことです。
2次元配列の場合は、角括弧の中に角括弧を書き、そこに代入するデータを記述します。
要素へのアクセスについては、角括弧を2回使用すれば良いです。
satoさんは、1つのリストの、1番目です。なので、0の0です。
suzukiさんは、1つのリストの、2番目です。なので、0の1です。
tanakaさんは、2つのリストの、1番目です。なので、1の0です。
takahashiさんは、2つのリストの、2番目です。なので、1の1です。
表示してみましょう。
sato、suzuki、takahashi、tanakaが表示されました。