何か処理を繰り返すなら、
while 条件式 do
処理
end
do
は省略できる。
条件式がtrue
なら処理が始まる。処理が終るたびに条件式を判断し、false
ならwhile
文を抜ける。
sheep = 1
while sheep < 4
print "羊が", sheep, "匹…\n"
sheep = sheep + 1
end
条件式「sheep < 4」がtrue
の間、処理を繰り返すので、出力はこうなる。
羊が1匹…
羊が2匹…
羊が3匹…
繰り返しの最中、繰り返し全体を終了するのがbreak
文、次の回の繰り返しにジャンプするのがnext
文。
while 条件式1 do
処理
if 条件式2
next # 次の回の繰り返しへ(条件式1の判断へ)
end
if 条件式3
break # 繰り返し全体の終了
end
end
sheep = 1
while true
print "羊が", sheep, "匹…\n"
sheep = sheep + 1
if sheep < 4
next
end
puts "スヤスヤ…"
break
end
出力はこうなる。
羊が1匹…
羊が2匹…
羊が3匹…
スヤスヤ…
繰り返す回数が予め決まっているなら、times
メソッドが便利。
回数.times do |変数|
処理
end
下記の変数iには「いま何回目の繰り返しか」が入るが、これは0からスタートすることに注意。
3.times do |i|
print "羊が", i+1, "匹…\n"
end
出力はこうなる。
羊が1匹…
羊が2匹…
羊が3匹…
配列の要素を順次処理していくにはeach
メソッドを使う。下記の変数には順番に配列の要素が代入されるので、処理中に参照できる。
配列名.each do |変数|
処理
end
code = ["Ruby", "HTML", "JavaScript"]
code.each do |e|
puts e
end
出力はこうなる。
Ruby
HTML
JavaScript