choco-ballの日記

勉強のアウトプットのためのブログ

Ruby(5) 配列

今回学ぶのは変数に複数の値を入れる方法です。

変数の中に複数の値を入れたものを配列と呼びます。
配列の中の値のことを要素と呼びます。

# 配列の宣言
array = [ ]

# 以下は配列の作成例
array = [ "チョコ", "ボール" ]
puts array
# 出力結果
# チョコ
# ボール


上記例のように配列は出力すると左から順番に取り出されます。
また、配列には添字(index)という番号が割り当てられます。
添字は一番左を0として数えます。
添字の値を指定することで特定の要素を取り出すことができます。

array = [ "チョコ", "ボール" ]
puts array[1]
# 出力結果
# ボール
# (チョコが0番、ボールが1番のため)


<<を使うことで後から配列に要素を追加することもできます

array = [ "チョコ", "ボール" ]

array << "ピーナッツ抜き"
puts array
# 出力結果
# チョコ
# ボール
# ピーナッツ抜き


配列の中の要素を変更したいときには、添字を指定して再代入します。

array = [ "チョコ", "ボール" , "ピーナッツ抜き"]

array[2] = "ピーナッツ入り"

puts array
# 出力結果
# チョコ
# ボール
# ピーナッツあり


lengthメソッドを使うと配列の中の要素の数を返します。

array = [ "チョコ", "ボール" , "ピーナッツ抜き"]

puts array.length

# 出力結果
# 3


配列は繰り返しや条件分岐の処理と組み合わせて使うことが多いです。
以下はサンプルです。

array = ["青信号","黄信号","赤信号"]

# arrayをブロック変数aryに入れて要素の数だけ繰り返し処理
# 今回は要素は3つなので3回ループする。
array.each do |ary|
  # aryが青信号であるときに分岐
  if ary == "青信号"
    # バックスラッシュ記法で改行
    puts "#{ary}!\n進め"
  
  # aryが黄信号であるときに分岐  
  elsif ary == "黄信号"
    puts "#{ary}!\n止まれ"

  # 上記2つに当てはまらない場合に分岐
  else
    puts "#{ary}!\n止まれぇぇぇい!!"
  end
end


# 出力結果
# 青信号!
# 進め
# 黄信号!
# 止まれ
# 赤信号!
# 止まれぇぇぇい!!
# 


配列と繰り返しや条件分岐を組み合わせると上記のようなことができます。
他にも色々できることはありますが、とりあえずこの辺で・・・。
ちなみに、ウェブアプリだとデータベースの中身を表示する際に
上記のような処理はめっちゃ使います。