Menu
Coddy logo textTech

論理演算子 パート4

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

1つの式の中で複数の論理演算子を組み合わせる場合、Rubyは演算子の優先順位に基づいて、特定の順序でそれらを評価します。この順序を理解することは、正しい条件式を記述し、予期しない結果を避けるのに役立ちます。

優先順位の高い順に並べると以下のようになります: ! (否定)、次に && (論理積)、そして || (論理和)です。つまり、最初に ! が評価され、次に &&、最後に || が評価されます:

true || false && false   # true (&& が先に評価される)
# 次と同じ: true || (false && false)

!false && true           # true (! が先に評価される)
# 次と同じ: (!false) && true

括弧を使用することで、デフォルトの優先順位を上書きし、意図を明確にすることができます:

(true || false) && false  # false (括弧により || が先に評価されます)
true || (false && false)  # true (デフォルトの動作)

括弧が厳密には必要ない場合でも、括弧を追加することで複雑な式が読みやすくなることがよくあります。迷ったときは、括弧を使用して条件をどのようにグループ化すべきかを明示的に示してください。

challenge icon

チャレンジ

簡単

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

x = true
y = false
z = true
a = false

以下の式を評価し、各結果を個別の行に表示してください。演算子の優先順位に注意してください:最初に ! が評価され、次に &&、最後に || が評価されます。

  1. x || y && z
  2. !y && z
  3. x && y || z
  4. !a || y && z
  5. x && !y && z
  6. (x || y) && a
  7. x || (y && a)
  8. !(x && y) || z

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

チートシート

Rubyは、演算子の優先順位に基づいて、特定の順序で論理演算子を評価します:

  1. ! (not) - 最も高い優先順位
  2. && (and) - 中間の優先順位
  3. || (or) - 最も低い優先順位

演算子の優先順位の例:

true || false && false   # true (&& が先に評価されます)
# 次と同じです: true || (false && false)

!false && true           # true (! が先に評価されます)
# 次と同じです: (!false) && true

デフォルトの優先順位を上書きしたり、可読性を向上させたりするには、括弧を使用します:

(true || false) && false  # false (括弧によって || が先に強制されます)
true || (false && false)  # true (デフォルトの動作)

自分で試してみよう

# 変数はすでに定義されています
x = true
y = false
z = true
a = false

# TODO: 各式を評価し、その結果を個別の行に出力してください
# 演算子の優先順位を忘れないでください: 最初は !、次に &&、最後に ||

# 1. x || y && z
puts # ここに式を記述してください

# 2. !y && z
puts # ここに式を記述してください

# 3. x && y || z
puts # ここに式を記述してください

# 4. !a || y && z
puts # ここに式を記述してください

# 5. x && !y && z
puts # ここに式を記述してください

# 6. (x || y) && a
puts # ここに式を記述してください

# 7. x || (y && a)
puts # ここに式を記述してください

# 8. !(x && y) || z
puts # ここに式を記述してください
quiz icon腕試し

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

基礎のすべてのレッスン