• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyの構文(&&を用いた条件分岐について))

Rubyの構文(&&を用いた条件分岐について)

このQ&Aのポイント
  • ruby初心者です。最近、ruby on railsで書かれたソースを引き継ぎ解析を行っています。上記プログラムを実行すると、if ~ end までが実行されませんでした。変数boolをtrueに変更して再実行したところ、if文が実行されました。私は、上記プログラムはif num == 0 && boolの条件がtrueの場合、if文が実行されると解釈しました。
  • 上記プログラムがどのような動作をするのかについて、正しい解釈はif num == 0 && boolの条件がtrueの場合、if文が実行されるというものです。実際にプログラムを実行して確認することもできます。&&は論理演算子であり、複数の条件を結合するために使用されます。
  • 参考URL:https://techacademy.jp/magazine/19856

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

演算子式 - Rubyリファレンスマニュアル http://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#and && はショートサーキット論理演算子の一種なので、  式A && 式B としたときは、 まず左辺の式Aが評価され、 その結果が真であった場合のみ右辺の式Bも評価されます。 もし、式Aが偽であれば式Bは評価(実行)されません。 そのため、式Aが真の時にのみ式Bを実行したいときに 上記の様な書き方をすることが可能です。 また、rubyにおいてifは式なので式Bはif式でも大丈夫です。 (C言語などとは違ってrubyのifは「値を持つ式」だったりします。) # 合ってるか間違ってるかはあえて明言しませんでしたがこの説明でそれは判断できますよね? なお、ショートサーキットはPerlで割と良く出てきます。

k-s1h9u8n3
質問者

お礼

Werner様 早速の回答ありがとうございました。 C言語とPHPしか主に触っていなかったので、まず文法に面食らってしまっていました。。。 ifも式と考えれば自然な書き方ですね(慣れるまで大変そうですが…) 明解な回答に感謝いたします。

関連するQ&A