Menu
Coddy logo textTech

論理演算子 パート4

CoddyのJavaジャーニー「基礎」セクションの一部。レッスン 26/73。

ド・モルガンの法則は、NOTを含むexpressionsを簡単にするのに役立つ規則です。論理expressionsを扱うとき、ときどきそれらを簡単にしたり、並べ替えたりする必要があります。

and で結合された2つの条件の前に not がある場合、それを2つの別々の部分に分けることができます。andor になり、それぞれの部分に独自の not が付きます。

!(A && B)(!A) || (!B) と同じです

例:

// 数値が1から10の間にないかどうかを確認しましょう
int number = 15;

// これら2つの式は等価です:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);

System.out.println(result1);  // true
System.out.println(result2);  // true

逆もまた正しいです:!(A || B)(!A) && (!B) と同じです

例:

// 人が学生でも雇用されてもいないかを確認する
boolean isStudent = false;
boolean isEmployed = false;

// これら2つの式は等価です:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);

System.out.println(result1);  // true
System.out.println(result2);  // true
challenge icon

チャレンジ

初心者

ペットショップが、顧客にペットを販売できるかどうかを判定するシステムの作成を手伝っています。

次の変数を初期化してください。

  • truehasLicense
  • falsehasSpace
  • truehasExperience

次の論理式を書いて、以下を判定してください。

  • canSellRegularPet:顧客には免許または経験のいずれかが必要で、スペースも必要
  • canSellExoticPet:顧客には免許と経験の両方が必要で、スペースも必要
  • cannotSellAnyPet:顧客に免許も経験もない、またはスペースがない
  • resultcanSellRegularPet または canSellExoticPet または cannotSellAnyPet

ヒント:変数がたまたま保持している値ではなく、要件が説明している条件を書いてください。「スペースが必要」 → hasSpace、「スペースがない」 → !hasSpace。変数名が示す内容の反対が要件になっている場合にのみ ! を使用します。たとえば「免許がない」 → !hasLicense です。

自分で試してみよう

public class Main {
    public static void main(String[] args) {
        // 変数を初期化する
        

        // 条件を計算する
        boolean canSellRegularPet = 
        boolean canSellExoticPet = 
        boolean cannotSellAnyPet =
        boolean result =

        // 以下の行を削除しないでください
        System.out.println("Can sell regular pet: " + canSellRegularPet);
        System.out.println("Can sell exotic pet: " + canSellExoticPet);
        System.out.println("Cannot sell any pet: " + cannotSellAnyPet);
        System.out.println("Result: " + result);
    }
}
quiz icon腕試し

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

基礎のすべてのレッスン

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