論理演算子 パート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開発者は条件式に&&、||、および!を好んで使用します。
単語形式のバージョンは、通常、制御フローの状況のために予約されており、これについては後で学習します。予期しない事態を避けるため、今のところは条件式を書く際に記号演算子(&&、||、!)を使用するようにしてください。
チャレンジ
簡単以下の変数が与えられています:
a = true
b = false
c = true単語ベースの論理演算子 (and, or, not) を使用して、以下の式を評価し、それぞれを個別の行に表示してください:
a and ba or bnot ba and cb or cnot a
各出力は true または false のいずれかである必要があります。
チートシート
Rubyは論理演算子の単語ベースの代替手段を提供しています:and、or、およびnot。これらは&&、||、および!と同様に機能しますが、優先順位が低くなっています。
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開発者は、驚きを避けるために条件式には&&、||、および!を好んで使用します。単語バージョンは通常、制御フローの状況のために予約されています。
自分で試してみよう
# 変数はあらかじめ用意されています
a = true
b = false
c = true
# TODO: 以下にコードを記述してください
# 単語ベースの論理演算子(and、or、not)を使用して、各式を評価し、出力してください
# 各結果は個別の行に出力してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。