制御構造

条件分岐
  • if
  • unless
  • case
繰り返し
  • while
  • until
  • for
  • break
  • next
  • redo
例外処理
  • begin
  • rescue
  • raise
  • retry
その他
  • return
  • BEGIN
  • END

参考:

制御構造 | Ruby リファレンスマニュアル [公式]

繰り返し処理

  • for ... in ... do ... end

参考:

for 文 | Let’s プログラミング

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

for 文 – ちょっと便利な繰り返し処理の構文とは? | Build Insider

for 文のサンプル (break / continue) | ITSakura

条件分岐 (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

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) | Let’s プログラミング

ruby unless 文に elsif はないよ – Qiita

“else if” を読み解く – Qiita

Ruby の条件分岐 – GitHub Gist

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 | ラブレター それから

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA