Menu
CoddyTech

論理演算子 パート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を出力します。

単語形式のものは通常、制御フローの場面で使われます。これについては後で学びます。今は、予期しない動作を避けるため、条件を書くときは記号の演算子(&&、||、!)を使いましょう。

challenge icon

チャレンジ

簡単

次の変数が用意されています。

a = true
b = false
c = true

単語形式の論理演算子(and、or、not)を使って、次の式を評価し、1行ずつ表示してください。

  1. a and b
  2. a or b
  3. not b
  4. a and c
  5. b or c
  6. not a

各式を出力するときは、それぞれを独自の括弧で囲んでください。例:puts((true and false))。

各出力はtrueまたはfalseのいずれかになります。

自分で試してみよう

# 変数はあらかじめ用意されています
a = true
b = false
c = true

# TODO: 以下にコードを書いてください
# 単語形式の論理演算子 (and, or, not) を使って、各式を評価し、その結果を出力してください
# 各結果を別々の行に出力してください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Rubyオンラインコンパイラ