カテゴリ: Javaの演算子 更新日: 2025/03/30

Java の論理演算子「&&, ||, !」とは?条件を組み合わせる方法

072
Java の論理演算子「&&, ||, !」とは?条件を組み合わせる方法

新人と先輩の会話形式で理解しよう

新人

「Java で複数の条件を組み合わせるにはどうすればいいですか?」

先輩

「Java には 論理演算子 というものがあって、複数の条件を一緒にチェックできるんだよ。」

新人

「具体的にどんな記号を使いますか?」

先輩

「論理演算子には、&&(AND)、||(OR)、!(NOT) があるよ。これを使うと、条件を組み合わせたり、反転させたりできるんだ。」

1. 論理演算子とは?(基本的な説明)

1. 論理演算子とは?(基本的な説明)
1. 論理演算子とは?(基本的な説明)

Java の 論理演算子 は、複数の条件を組み合わせるために使います。

論理演算子の種類

  • &&(AND) … 2 つの条件が両方とも true のときに true になる
  • ||(OR) … どちらかの条件が true のときに true になる
  • !(NOT) … 条件の結果を反転させる(true なら falsefalse なら true

例えば、次のようなコードで論理演算子を使えます。


public class LogicalOperators {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;

        System.out.println("a && b: " + (a && b)); // AND
        System.out.println("a || b: " + (a || b)); // OR
        System.out.println("!a: " + !a); // NOT
    }
}

a && b: false
a || b: true
!a: false

このように、論理演算子を使うことで、条件を組み合わせたり、反転させたりすることができます。

2. 「&&(AND)」と「||(OR)」の基本的な使い方

2. 「&&(AND)」と「||(OR)」の基本的な使い方
2. 「&&(AND)」と「||(OR)」の基本的な使い方

Java では、&&(AND) と ||(OR) を使って条件を組み合わせることができます。

&&(AND)の例

&& は、両方の条件が true のときにだけ true になります。


public class AndExample {
    public static void main(String[] args) {
        int age = 25;
        boolean hasTicket = true;

        boolean canEnter = (age >= 20) && hasTicket;

        System.out.println("入場できるか?: " + canEnter);
    }
}

入場できるか?: true

この例では、年齢が 20 以上 かつ チケットを持っている場合のみ、入場が許可されます。

||(OR)の例

|| は、どちらかの条件が true なら、結果が true になります。


public class OrExample {
    public static void main(String[] args) {
        int age = 17;
        boolean hasParent = true;

        boolean canEnter = (age >= 18) || hasParent;

        System.out.println("保護者同伴なら入場できるか?: " + canEnter);
    }
}

保護者同伴なら入場できるか?: true

この例では、年齢が 18 以上 または 保護者が同伴している場合、入場が許可されます。

3. 「!(NOT)」の使い方(条件を反転させる)

3. 「!(NOT)」の使い方(条件を反転させる)
3. 「!(NOT)」の使い方(条件を反転させる)

Java では、!(NOT)を使うことで、条件の結果を反転させることができます。

!(NOT)の基本的な使い方

!(NOT)は、truefalse に、falsetrue に変える演算子です。


public class NotExample {
    public static void main(String[] args) {
        boolean isSunny = true;
        boolean isNotSunny = !isSunny;

        System.out.println("晴れているか?: " + isSunny);
        System.out.println("晴れていないか?: " + isNotSunny);
    }
}

晴れているか?: true
晴れていないか?: false

このように、! を使うと、元の条件と逆の結果を得ることができます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 論理演算子を使った条件判定の例

4. 論理演算子を使った条件判定の例
4. 論理演算子を使った条件判定の例

論理演算子を使うと、条件を組み合わせて判定できます。

例1: 複数の条件を組み合わせる

例えば、年齢が 18 歳以上で運転免許を持っているかどうかを判定してみましょう。


public class DrivingEligibility {
    public static void main(String[] args) {
        int age = 20;
        boolean hasLicense = true;

        boolean canDrive = (age >= 18) && hasLicense;

        System.out.println("運転できるか?: " + canDrive);
    }
}

運転できるか?: true

この例では、「年齢が 18 歳以上」かつ「運転免許を持っている」という 2 つの条件がどちらも true の場合のみ、運転が許可されます。

例2: どちらかの条件が満たされればOK

今度は、「年齢が 18 歳以上 または 保護者が同伴している場合に入場できるか」を判定してみましょう。


public class AdmissionCheck {
    public static void main(String[] args) {
        int age = 16;
        boolean hasParent = true;

        boolean canEnter = (age >= 18) || hasParent;

        System.out.println("入場できるか?: " + canEnter);
    }
}

入場できるか?: true

この場合、年齢が 18 歳未満でも、保護者が同伴していれば入場できます。

5. 条件を組み合わせて使う方法

5. 条件を組み合わせて使う方法
5. 条件を組み合わせて使う方法

論理演算子は、組み合わせることで複雑な条件判定が可能になります。

例1: 学生割引の適用条件

次のコードでは、「学生である」 かつ 「学生証を持っている」場合に、割引が適用されるかどうかを判定します。


public class StudentDiscount {
    public static void main(String[] args) {
        boolean isStudent = true;
        boolean hasStudentID = false;

        boolean getDiscount = isStudent && hasStudentID;

        System.out.println("学生割引が適用されるか?: " + getDiscount);
    }
}

学生割引が適用されるか?: false

このように、両方の条件が満たされないと割引は適用されません。

例2: 入場制限の条件を設定

例えば、「12 歳未満は入場不可」「12 歳以上なら OK」「保護者同伴なら年齢制限なし」というルールを作ることができます。


public class AgeRestriction {
    public static void main(String[] args) {
        int age = 10;
        boolean hasGuardian = true;

        boolean canEnter = (age >= 12) || hasGuardian;

        System.out.println("入場可能か?: " + canEnter);
    }
}

入場可能か?: true

この場合、年齢が 12 歳未満でも保護者が同伴していれば入場できます。

6. 論理演算子を使った計算の例(複数の条件を組み合わせる)

6. 論理演算子を使った計算の例(複数の条件を組み合わせる)
6. 論理演算子を使った計算の例(複数の条件を組み合わせる)

論理演算子を使うことで、複数の条件を組み合わせて、より柔軟な判定ができます。

例1: 年齢制限と会員資格のチェック

例えば、18 歳以上 かつ 会員である場合に特典を受けられるかどうかを判定するプログラムを作ります。


public class MembershipCheck {
    public static void main(String[] args) {
        int age = 20;
        boolean isMember = true;

        boolean getBenefits = (age >= 18) && isMember;

        System.out.println("特典を受けられるか?: " + getBenefits);
    }
}

特典を受けられるか?: true

この場合、年齢が 18 歳以上であり、なおかつ会員である場合のみ、特典を受けられます。

例2: ショッピングの割引適用

次のプログラムでは、購入金額が 5000 円以上 または クーポンを持っている場合に割引が適用されるかどうかを判定します。


public class DiscountCheck {
    public static void main(String[] args) {
        int purchaseAmount = 4000;
        boolean hasCoupon = true;

        boolean getDiscount = (purchaseAmount >= 5000) || hasCoupon;

        System.out.println("割引が適用されるか?: " + getDiscount);
    }
}

割引が適用されるか?: true

このように、購入金額が基準に達しなくても、クーポンを持っていれば割引を受けられます。

7. 比較演算子と論理演算子を組み合わせる方法

7. 比較演算子と論理演算子を組み合わせる方法
7. 比較演算子と論理演算子を組み合わせる方法

論理演算子は、比較演算子と組み合わせることで、より詳細な条件判定ができます。

例1: テストの合格判定

例えば、国語と数学の両方の試験が 60 点以上であれば合格とする判定を行います。


public class ExamPassCheck {
    public static void main(String[] args) {
        int japaneseScore = 65;
        int mathScore = 70;

        boolean isPassed = (japaneseScore >= 60) && (mathScore >= 60);

        System.out.println("合格したか?: " + isPassed);
    }
}

合格したか?: true

この場合、両方の点数が 60 点以上であれば合格になります。

例2: 無料配送の条件

購入金額が 5000 円以上 または プライム会員なら無料配送になるルールを作成します。


public class FreeShippingCheck {
    public static void main(String[] args) {
        int purchaseAmount = 3000;
        boolean isPrimeMember = true;

        boolean freeShipping = (purchaseAmount >= 5000) || isPrimeMember;

        System.out.println("無料配送になるか?: " + freeShipping);
    }
}

無料配送になるか?: true

この場合、購入金額が 5000 円未満でもプライム会員であれば無料配送が適用されます。

8. 練習問題:論理演算子を使ったプログラムを作ろう

8. 練習問題:論理演算子を使ったプログラムを作ろう
8. 練習問題:論理演算子を使ったプログラムを作ろう

最後に、論理演算子を活用した練習問題を出題します。

問題1: 旅行に行けるかどうかを判定する

以下の条件を満たしている場合に旅行に行けると判定するプログラムを作成してください。

  • お金が 5 万円以上ある
  • 休みが 3 日以上ある

public class TravelCheck {
    public static void main(String[] args) {
        int money = 60000;
        int vacationDays = 2;

        boolean canTravel = (money >= 50000) && (vacationDays >= 3);

        System.out.println("旅行に行けるか?: " + canTravel);
    }
}

旅行に行けるか?: false

問題2: 映画を観られるかどうかを判定する

次のルールに従って映画を観られるか判定するプログラムを作成してください。

  • 年齢が 15 歳以上
  • または、親が同伴している

public class MovieCheck {
    public static void main(String[] args) {
        int age = 14;
        boolean hasParent = true;

        boolean canWatchMovie = (age >= 15) || hasParent;

        System.out.println("映画を観られるか?: " + canWatchMovie);
    }
}

映画を観られるか?: true

このように、論理演算子を活用すると、条件を柔軟に組み合わせることができます。

Javaの演算子の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク