気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Ruby 繰り返し処理

使いそうな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