Menu
CoddyTech

論理演算子 パート4

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

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

and で結ばれた2つの条件の前に not がある場合、それを2つの別々の部分に分けることができます。and は or になり、それぞれの部分に独自の 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

チャレンジ

初心者

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

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

  • 値 true の hasLicense
  • 値 false の hasSpace
  • 値 true の hasExperience

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

  • canSellRegularPet:顧客はライセンスまたは経験のいずれかを必要とし、スペースも持っていなければならない
  • canSellExoticPet:顧客はライセンスと経験の両方を必要とし、スペースも持っていなければならない
  • cannotSellAnyPet:顧客にライセンスも経験もない、またはスペースがない
  • result:canSellRegularPet、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オンラインコンパイラ