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メソッド)についてでした。 ありがとうございました。