Menu
Coddy logo textTech

論理演算子 パート3

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 19/88。

Rubyは、論理演算子の単語ベースの代替手段も提供しています:andor、および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開発者は条件式に&&||、および!を好んで使用します。

単語形式のバージョンは、通常、制御フローの状況のために予約されており、これについては後で学習します。予期しない事態を避けるため、今のところは条件式を書く際に記号演算子(&&||!)を使用するようにしてください。

challenge icon

チャレンジ

簡単

以下の変数が与えられています:

a = true
b = false
c = true

単語ベースの論理演算子 (and, or, not) を使用して、以下の式を評価し、それぞれを個別の行に表示してください:

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

各出力は true または false のいずれかである必要があります。

チートシート

Rubyは論理演算子の単語ベースの代替手段を提供しています:andor、および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)を使用して、各式を評価し、出力してください
# 各結果は個別の行に出力してください
quiz icon腕試し

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

基礎のすべてのレッスン