制御構造

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

ドキュメント:

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

繰り返し処理

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

参考:

for 文 | JavaDrive

繰り返し処理について – 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
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

unless 文に elsif はないよ – Qiita

else if を読み解く – Qiita

条件分岐 – GitHub Gist

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

do … end

参考:

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

next / break / redo

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

参考:

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

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

break / next / redo の違い | Worth Living

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

参考:

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

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

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

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

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

まとめ

制御構造 | Ruby アソシエーション

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

コメントを残す

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

Protected by reCAPTCHA