Java入門 #4 - 演算子(算術・比較・論理)

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

今回やること

演算子は、値を計算したり比べたりする記号です。商品の小計を計算し、「5,000円以上または会員なら送料無料」という判定を作ります。

前提: Java入門 #3 - 変数とデータ型を終え、intbooleanの変数を使えること。

よく使う演算子

算術演算子

演算子意味結果
+足す8 + 311
-引く8 - 35
*掛ける8 * 324
/割る8 / 32
%余り8 % 32

整数同士の8 / 3は、小数部分を切り捨てて2になります。小数の結果が必要なら、少なくとも片方をdoubleにします。

比較演算子

演算子意味
==等しいtotal == 5000
!=等しくないtotal != 0
> / >=より大きい / 以上total >= 5000
< / <=より小さい / 以下total < 5000

比較結果はtrueまたはfalseです。代入の=と、等しいか比べる==を区別してください。

論理演算子

演算子意味trueになる例
&&両方ともage >= 13 && age <= 18
``
!反対にする!isClosed

&&||は次の表で確認できます。

| A | B | A && B | A || B | | --- | --- | --- | --- | | true | true | true | true | | true | false | false | true | | false | true | false | true | | false | false | false | false |

&&は両方を満たす必要があり、||は少なくとも一方を満たせばよい、と日本語へ戻して確認します。

代入演算子

points += 10points = points + 10の短い書き方です。-=, *=, /=も同じ考え方です。

判定コードを段階的に作る

最初に単価と個数から小計を計算します。

int unitPrice = 1200;
int quantity = 3;
int subtotal = unitPrice * quantity;

次に比較と論理演算子を使います。

boolean isMember = true;
boolean freeShipping = subtotal >= 5000 || isMember;

小計は3,600円なので最初の比較はfalseですが、会員がtrueのため、false || trueの結果はtrueです。

結果
subtotal >= 50003600 >= 5000なのでfalse
isMember設定した値がtrue
`false

長い条件式は、このように小さな比較へ分けて読むと間違いを見つけやすくなります。

完成コードを動かす

OperatorDemo.javaとして保存します。

public class OperatorDemo {
    public static void main(String[] args) {
        int unitPrice = 1200;
        int quantity = 3;
        int subtotal = unitPrice * quantity;

        boolean isMember = true;
        boolean freeShipping = subtotal >= 5000 || isMember;

        int points = 20;
        points += quantity * 10;

        System.out.println("小計: " + subtotal + "円");
        System.out.println("送料無料: " + freeShipping);
        System.out.println("ポイント: " + points);
    }
}
javac OperatorDemo.java
java OperatorDemo

成功確認

小計: 3600円
送料無料: true
ポイント: 50

isMemberfalseに変えると、送料無料がfalseになることも確認してください。小計を5,000円以上へ変えた場合は、非会員でもtrueになります。

次の3通りを試すと、境界と論理演算子を確認できます。

小計会員送料無料
3,600円falsefalse
3,600円truetrue
6,000円falsetrue

優先順位と括弧

*+より先、&&||より先に評価されます。暗記だけに頼らず、まとまりを括弧で示すと読みやすくなります。

boolean canEnter = hasTicket && (isStudent || isMember);

Javaの&&||は、左側だけで結果が決まる時に右側を評価しません。例えばuser != null && user.isActive()は、usernullなら右側を呼びません。この性質を短絡評価と呼びます。まずは左から安全に判定できる順番を意識してください。

よくあるつまずき

===を混同する

=は右の値を左へ代入し、==は左右が等しいか比較します。

Stringを==で比べる

文字列の内容はname.equals("Ada")で比べます。==はStringの内容比較には使いません。

&&||の条件を逆にする

「両方必要」なら&&、「どちらかでよい」なら||です。条件を日本語で一度書いてから式へ変えます。

練習

映画館の割引判定を作ってください。「年齢が18歳以下、または学生なら割引」とします。ageisStudentからhasDiscountを計算し、条件を変えてtruefalseの両方を確認します。

次のステップ

Java入門 #5 - Stringの基本で、文字列の結合・長さ・内容比較を学びます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR