論理演算子 パート1
CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 16/88。
比較演算子を使用すると2つの値を比較できますが、複数の条件を一度にチェックする必要がある場合はどうすればよいでしょうか? 論理演算子を使用すると、ブール式を組み合わせて、より複雑な条件を作成できます。
&& 演算子(「and」と呼ばれます)は、両方の条件が true の場合にのみ true を返します。いずれかの条件が false の場合、式全体が false になります:
age = 25
has_license = true
age >= 18 && has_license # true (両方の条件が真)
age >= 18 && false # false (1つの条件が偽)
|| 演算子(「or」と呼ばれます)は、少なくとも1つの条件が true であるときに true を返します。両方の条件が false である場合にのみ false を返します。
is_weekend = true
is_holiday = false
is_weekend || is_holiday # true (少なくとも一方が真)
false || false # false (両方が偽)
&& はすべての条件が満たされる必要があるのに対し、|| は1つだけ満たされればよいと考えてください。これらの演算子は、ユーザーがログインしており、かつ権限を持っているかどうかの確認や、店舗が週末または祝日に営業しているかどうかの確認など、実世界のロジックを構築するために不可欠です。
チャレンジ
簡単以下の変数が提供されています:
temperature = 22
is_sunny = true
has_umbrella = false
is_weekend = true
has_homework = false&& および || 演算子を使用して、以下の式を評価し、それぞれを個別の行に表示してください:
temperatureが20より大きい かつis_sunnyがtrueであるかを確認するis_sunnyがtrueまたはhas_umbrellaがtrueであるかを確認するis_weekendがtrueかつhas_homeworkがfalseであるかを確認するtemperatureが10未満 またはtemperatureが30より大きいかを確認するis_weekendがtrueかつis_sunnyがtrueかつtemperatureが20以上であるかを確認する
各出力は true または false のいずれかである必要があります。
チートシート
論理演算子を使用すると、ブール式を組み合わせて、より複雑な条件を作成できます。
&& 演算子(「かつ」と呼ばれます)は、両方の条件が真である場合にのみ true を返します:
age = 25
has_license = true
age >= 18 && has_license # true (両方の条件が真)
age >= 18 && false # false (1つの条件が偽)
|| 演算子(「または」と呼ばれます)は、少なくとも1つの条件が真である場合に true を返します:
is_weekend = true
is_holiday = false
is_weekend || is_holiday # true (少なくとも1つが真)
false || false # false (両方が偽)
複数の論理演算子を連結することができます:
condition1 && condition2 && condition3 # すべてが真である必要がある
condition1 || condition2 || condition3 # 少なくとも1つが真である必要がある
自分で試してみよう
# 変数はすでに定義されています
temperature = 22
is_sunny = true
has_umbrella = false
is_weekend = true
has_homework = false
# TODO: 以下にコードを記述してください
# 式を評価するために && および || 演算子を使用してください
# 各結果を個別の行に出力してください
# 1. temperature > 20 かつ is_sunny が true かどうかを確認します
# 2. is_sunny が true または has_umbrella が true かどうかを確認します
# 3. is_weekend が true かかつ has_homework が false かどうかを確認します
# 4. temperature < 10 または temperature > 30 かどうかを確認します
# 5. is_weekend が true かつ is_sunny が true かかつ temperature >= 20 かどうかを確認しますこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。