【Ruby】eachメソッドで繰り返し処理を実装する方法

Ruby

Rubyのeachメソッドとは

Rubyのeachメソッドを使うと、配列や範囲オブジェクトに含まれている要素を順に取り出し、要素がなくなるまで処理を繰り返すことができます。

基本的な構文は以下の通りです。

配列.each do |要素の変数|
  # 処理
end

上記の「配列」となっている部分はハッシュ(連想配列)やRangeオブジェクト等でも可能です。

Rubyのeachメソッドを使用したコード例

以下の例でそれぞれ解説します。

  • 配列に対してeachメソッドを使用する
  • ハッシュ(連想配列)に対してeachメソッドを使用する
  • Rangeオブジェクトに対してeachメソッドを使用する

配列に対してeachメソッドを使用する

シンプルな配列に対して繰り返し処理を行うと、以下のようになります。

sample_array = ["田中", "加藤", "鈴木"]

sample_array.each do |name|
  p name
end

# 出力結果
# 田中
# 加藤
# 鈴木

ハッシュ(連想配列)に対してeachメソッドを使用する

ハッシュに対してeachメソッドを使用する場合、変数を2つ用意すると、1つ目がkeyで2つ目はvalueを表します。

sample_hash = {"a"=>1, "b"=>2, "c"=>3}

sample_hash.each do |key, value|
  p "keyは#{key}です。valueは#{value}です。"
end

# 出力結果
# "keyはaです。valueは1です。"
# "keyはbです。valueは2です。"
# "keyはcです。valueは3です。"

なお、変数を1つにした場合は、以下のようにハッシュの各要素を配列として取得することができます。

sample_hash = {"a"=>1, "b"=>2, "c"=>3}

sample_hash.each do |element|
  p element
end

# 出力結果
# ["a", 1]
# ["b", 2]
# ["c", 3]

Rangeオブジェクトに対してeachメソッドを使用する

Rubyでは、[始まりの数..終わりの数]という構文でRangeオブジェクトを作成することができます。

RubyのRangeオブジェクトの使い方については、以下で詳しく解説しています。
【Ruby】範囲オブジェクト(Range)について詳しく解説します

Rangeオブジェクトは連続した数値の集まりなので、eachメソッドを使用することで、1つずつ数値を取り出して処理をすることが可能です。

sample_range = 1..5

sample_range.each do |number|
  p number
end

# 出力結果
# 1
# 2
# 3
# 4
# 5
タイトルとURLをコピーしました