使いそうなfor、each 、time、uptoについて他のサイトより、かき集めて
纏めます。
for
# 配列 strs = ["a", "b", "c"] for str in strs do # doは省略可能 puts str end #=>a # b # c # Rangeオブジェクト for i in 1..10 puts i end #=>1 # 2 # 3 ・・・ # ハッシュ fruits = {:apple => "アップル", :orange => "オレンジ", :grape => "グレープ"} for key, value in fruits puts "KEY:#{key} VALUE:#{value}" end #=>KEY:apple VALUE:アップル # KEY:orange VALUE:オレンジ # KEY:grape VALUE:グレープ
forではループ構文の内外で変数のスコープは変わらない。
each
オブジェクト.each do |変数| 実行する処理 end (5..10).each do |num| # do省略不可 print("num = ", num) end
forで指定できるオブジェクトを指定可能。(配列、ハッシュ、rangeオブジェクト)
eachではブロックの内外でスコープが変わる。
time
3.times do |i| puts "#{i}回目" end #=>0回目 # 1回目 # 2回目
先頭に繰り返し回数を指定。内部変数のiは0から始まる。
upto
初期値から最大値まで1ずつ増やしながら繰り返す。
初期値.upto(最大値) do |i| 繰り返す処理 end 1.upto(3) do |i| puts "#{i}回目" end #=>0回目 # 1回目 # 2回目
downtoという逆版の関数あり。
(初期値から最小値まで1ずつ減らしていく)
# 参考URL
【Ruby】繰り返し処理について(for, while, until, each, time, loop) - TASK NOTES