論理演算子 パート3
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 19/88。
Rubyには、論理演算子の単語形式の別の表記として、and、or、notも用意されています。これらは&&、||、!と同様に機能しますが、重要な違いが1つあります。それは、優先順位が低いことです。
true and false # false(&&と同じ)
true or false # true(||と同じ)
not true # false(!と同じ)優先順位が低いため、これらの演算子は代入の後に評価されます。そのため、予期しない動作につながることがあります。
result = true && false # result は false
result = true and false # result は true!2つ目の例では、まず代入が行われ(result = true)、次にand falseが評価されますが、その結果は破棄されます。このため、ほとんどのRuby開発者は条件式に&&、||、!を使うことを好みます。
putsでも同じことが起こります。puts true and falseはtrueを出力します。これは、まずputs trueが実行されるためです。単語形式の演算子の結果を出力するには、式全体を独自の括弧で囲みます。puts((true and false))はfalseを出力します。
単語形式のものは通常、制御フローの場面で使われます。これについては後で学びます。今は、予期しない動作を避けるため、条件を書くときは記号の演算子(&&、||、!)を使いましょう。
チャレンジ
簡単次の変数が用意されています。
a = true
b = false
c = true単語形式の論理演算子(and、or、not)を使って、次の式を評価し、1行ずつ表示してください。
a and ba or bnot ba and cb or cnot a
各式を出力するときは、それぞれを独自の括弧で囲んでください。例:puts((true and false))。
各出力はtrueまたはfalseのいずれかになります。
自分で試してみよう
# 変数はあらかじめ用意されています
a = true
b = false
c = true
# TODO: 以下にコードを書いてください
# 単語形式の論理演算子 (and, or, not) を使って、各式を評価し、その結果を出力してください
# 各結果を別々の行に出力してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ