Rubyの繰り返し

何か処理を繰り返すなら、


while文

while 条件式 do
  処理
end

doは省略できる。

条件式がtrueなら処理が始まる。処理が終るたびに条件式を判断し、falseならwhile文を抜ける。


while文の例

sheep = 1
while sheep < 4
  print "羊が", sheep, "匹…\n"
  sheep = sheep + 1
end

条件式「sheep < 4」がtrueの間、処理を繰り返すので、出力はこうなる。

羊が1匹…
羊が2匹…
羊が3匹…

break文とnext文

繰り返しの最中、繰り返し全体を終了するのがbreak文、次の回の繰り返しにジャンプするのがnext文。

while 条件式1 do
  処理
  if 条件式2
    next # 次の回の繰り返しへ(条件式1の判断へ)
  end
  if 条件式3
    break # 繰り返し全体の終了
  end
end

break文とnext文の例

sheep = 1
while true
  print "羊が", sheep, "匹…\n"
  sheep = sheep + 1
  if sheep < 4
    next
  end
  puts "スヤスヤ…"
  break
end

出力はこうなる。

羊が1匹…
羊が2匹…
羊が3匹…
スヤスヤ…

timesメソッド

繰り返す回数が予め決まっているなら、timesメソッドが便利。

回数.times do |変数| 
  処理
end

下記の変数iには「いま何回目の繰り返しか」が入るが、これは0からスタートすることに注意。

3.times do |i|
 print "羊が", i+1, "匹…\n"
end

出力はこうなる。

羊が1匹…
羊が2匹…
羊が3匹…

eachメソッド

配列の繰り返し処理

配列の要素を順次処理していくにはeachメソッドを使う。下記の変数には順番に配列の要素が代入されるので、処理中に参照できる。

配列名.each do |変数|
  処理
end
code = ["Ruby", "HTML", "JavaScript"]
code.each do |e|
  puts e
end

出力はこうなる。

Ruby
HTML
JavaScript