制御構造
ドキュメント:
概要
条件分岐
ifunlesscase
繰り返し
whileuntilforbreaknextredo
例外処理
beginrescueraiseretry
その他
returnBEGINEND
ドキュメント:
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!"
endCode 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."
endCode 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
endCode 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; endCode 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と