条件分岐

  • if
  • unless
  • case

繰り返し

  • while
  • until
  • for
  • break
  • next
  • redo

例外処理

  • begin
  • rescue
  • raise
  • retry

その他

  • return
  • BEGIN
  • END

参考:

制御構造 (Ruby 2.5.0)

繰り返し処理について (for, while, until, each, time, loop) | TASK NOTES

ruby の条件分岐 – GitHub Gist

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

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

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

参考:

複数の条件分岐 (if…elsif…else…end) | Ruby 入門 (www.javadrive.jp)

ruby unless 文に elsif はないよ。。。- Qiita

“else if” を読み解く – Qiita

Can I use `else if` over `elsif`? – Stack Overflow

do … end

参考:

do … end と { … } の違い | おもしろ web サービス開発日記

next / break / redo

  • next:次の繰り返しの実行に移る。
  • break:ループの実行を中断する。
  • redo:現在と同じ条件の繰り返しをもう一度行う。

参考:

Ruby の next, break でよく分かってなかったこと | dunno logs

ブロックについてのあれこれ – Qiita

break, next, redo の違い | Worth Living

多重ループを抜ける (throw / catch)

参考:

Ruby で多重ループを抜ける方法 | 或るプログラマの開発日記

ruby で多重ループを抜ける3つの方法を速度比較してみた | sonots:blog

ネストの深い (多重) ループを抜け出す | 酒と涙とRubyとRailsと

多重ループから抜ける – Qiita

多重ループから抜ける in Ruby | ラブレター それから

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です