この記事では繰り返し処理のeachメソッドについて説明していきます。
「each」とは配列や範囲オブジェクトにある繰り返し処理用のメソッドです
繰り返し処理とは他のプログラミング言語にもありますが、
配列・ハッシュなど複数の要素をもつオブジェクトを先頭から
順に繰り返して処理を行う方法です。

eachメソッドの書き方とは?

eachメソッドの書式について説明していきます。

配列のeachメソッド

配列.each do |変数|
    処理
end

配列とは複数のオブジェクトを管理できます。
変数では一つのオブジェクトなので、複数管理できるという点で違います。
配列に格納されたオブジェクトはインデックスという数値で指定できます。
また、配列に格納できるものはオブジェクトであれば良いため、
数値でも文字列でも格納できます。

変数 a = "ruby"
配列  array = ["ruby","python","php",10,2200,300]
array = ["ruby","python","php",10,2200,300]
puts array[1]

実行結果

python

ハッシュのeachメソッド

ハッシュ.each do|キー,値|
    処理
end

ハッシュは連想配列とも言われています。配列と同じく複数のオブジェクトを管理できます。
配列と異なる点としてオブジェクトを格納する際に、キーと値のセットで格納する点です。
配列と違ってキーにより値を指定できます。

hash = {"ruby" => "rb", "python" => "py", "php" => "php"}
puts hash["ruby"]

実行結果

rb

eachメソッドの使い方とは?

eachメソッドを使って実際にプログラムを書いてみましょう。

配列のeachメソッドのコード

data = ["ruby", "python", "php"]
data.each do |value|
    puts value
end

配列 dataの値を繰り返し処理によって出力しています。

data配列の作成

dataに対してeachメソッドを実行する
doからendまで繰り返し処理の範囲として実行され、data配列の全部のオブジェクトに対して
処理を繰り返します。
繰り返し処理としてはputsでdata配列の値を出力しています。
配列のeachメソッドの実行結果

$ ruby 01.each.rb
ruby
python
php

ハッシュのeachメソッドのコード

data = {"ruby" => "rb", "python" => "py", "php" => "php"}
data.each do |key,value|
    puts "#{key}:#{value}"
end

ハッシュのeachメソッドの実行結果

$ ruby 02.each.rb
ruby:rb
python:py
php:php

dataハッシュの作成

dataに対してeachメソッドを実行する
doからendまで繰り返し処理の範囲として実行され、data配列の全部のオブジェクトに対して
処理を繰り返します。
繰り返し処理としてはputsでdata配列のキーと値を出力しています。

おわりに

eachメソッドを使えるようになるとそれこそ数百、数千と処理をする場合でも
プログラムで実行できるようになります。
たとえば大量のファイルを整理する場合など日常の仕事の中でも便利な場面はたくさんあります。
常日頃からこれはプログラムで自動化できないかと考えてプログラムをどんどん書いていきましょう