制御構造
ドキュメント:
概要
条件分岐
if
unless
case
繰り返し
while
until
for
break
next
redo
例外処理
begin
rescue
raise
retry
その他
return
BEGIN
END
ドキュメント:
for 文
for ... in ... do ... end
ドキュメント:
参考:
繰り返し処理について – for / while / until / each / time / loop | TASK NOTES
for 文 – ちょっと便利な繰り返し処理の構文とは? | Build Insider
for 文のサンプル (break / continue) | ITSakura
times
指定した回数だけ処理を繰り返す。
5.times do
puts "Hello, World!"
end
Code language: Ruby (ruby)
ドキュメント:
Integer#times | Ruby リファレンスマニュアル [公式]
参考:
条件分岐 (if 式)
if ... elsif ... else ... end
else if
ではなく elsif
を使うのは、最後の end
を一つで済ませるため。
if obj.is_a?(A) then
puts "This is A."
elsif obj.is_a?(B) then
puts "This is B."
else
puts "This is unknown."
end
Code language: Ruby (ruby)
else if
を使ってインデントを正しく取って書いた場合は以下のようになる。
if obj.is_a?(A) then
puts "This is A."
else
if obj.is_a?(B) then
puts "This is B."
else
puts "This is unknown."
end
end
Code language: Ruby (ruby)
else if
を同じ行に書いた場合には次のようになるが、end
は二つ必要である。
if obj.is_a?(A) then
puts "This is A."
else if obj.is_a?(B) then
puts "This is B."
else
puts "This is unknown."
end; end
Code language: Ruby (ruby)
ドキュメント:
参考:
複数の条件分岐 (if…elsif…else…end) | JavaDrive
Can I use `else if` over `elsif`? – Stack Overflow
do … end
参考:
do … end と { … } の違い | おもしろ web サービス開発日記
next / break / redo
next
:次の繰り返しの実行に移る。break
:ループの実行を中断する。redo
:現在と同じ条件の繰り返しをもう一度行う。
参考:
next / break でよく分かってなかったこと | dunno logs
break / next / redo の違い | Worth Living
多重ループを抜ける (throw / catch)
参考:
多重ループを抜ける3つの方法を速度比較してみた | sonots:blog
ネストの深いループを抜け出す | 酒と涙とRubyとRailsと