繰り返し処理について

Rubyにおける繰り返し処理について、学習したので、備忘録として記事を描かせていただきます。

繰り返し処理とは

同じ処理を何度も繰り返す処理の記述のことを言います。 1つの処理の記述することで、繰り返し処理を行ってくれます。 ループ処理とも言われます。 繰り返し処理には、メソッドを使用してコードを記述していきます。

メソッドについて

timesメソッド

→指定した回数分、do~end内の処理を繰り返し行います。

〜記述方法〜

数値.times do |ブロック変数|
  # 繰り返す処理(0から始まるブロック変数が使える)
end

eachメソッド

→配列やハッシュの要素1つ1つに対してdo~end内の処理を繰り返し行いきます。

~記述方法~

[配列 or ハッシュ].each do | [変数] |
  # 処理
end

ブロック変数

メソッド内だけで使用できる変数をブロック変数と言います。 ブロック変数は、| |で変数を挟む形で記述します。 timesメソッドのブロック変数には、繰り返し処理が1回実行されるごとに、0から1ずつ増加する数値が代入されます。 eachメソッドのブロック変数には、配列、またはハッシュの要素が1つづつブロック変数に代入されていきます。

具体的な使い方

eachメソッド

・配列の場合

fruits = ['りんご', 'オレンジ', 'バナナ', 'パイナップル']
fruits.each do |item|
  puts item
end

fruitsの配列の中の要素が、一つづつブロック変数:「item」に代入され、次の処理:「puts」で順番に出力される。 実行結果は、下記の通りとなります。

実行結果
=> りんご
=> オレンジ
=> バナナ
=> パイナップル 

・ハッシュの場合

fruits = {`りんご`=> 150, 'オレンジ' => 200, 'バナナ' => 300}
fruits.each do |key, value|
  puts "#{key}:#{value}"
end

friutsのハッシュ内のキーとバリューをそれぞれ取り出す為に、ブロック変数に|key, value|を設定します。 このとき、配列と違い、ハッシュの場合は、キーとバリューを指定する必要がある為、2つブロック変数を指定します。

そうすることにより、ハッシュ内の要素(キーとバシュー)を取得することができます。 実行結果は、以下の通りとなります。

 実行結果
=> りんご : 150
=> オレンジ : 200
=> バナナ : 100
=> パイナップル : 300

以上、繰り返し処理(timesメソッド、eachメソッド)についてでした。 ありがとうございました。