【Java】Java演算子の基本を解説:算術・比較・論理演算子の使い分け

Java

こんにちは、かつコーチです。

Javaのコードを読んでいると、+==&&など記号がたくさん出てきて混乱しませんか。
これらはすべて演算子(値を計算・比較・結合するための記号)です。
この記事では、算術演算子・比較演算子・論理演算子の3種類を中心に、初心者がつまずきやすいポイントも含めて解説します。

演算子とは?

演算子が必要な理由

プログラムは、値を組み合わせて計算したり、条件を判定したりすることで動作します。
その計算・判定のルールを定義しているのが演算子です。
演算子を正しく理解していないと、if文や繰り返し処理で意図しない動作を引き起こしてしまいます。

演算子の3つの分類

Javaの演算子は大きく分けて次の3種類があります。

  • 算術演算子:足し算・引き算など数値計算を行う(+ - * / %
  • 比較演算子:2つの値の大小や等しさを判定する(== != > < >= <=
  • 論理演算子:複数の条件を組み合わせる(&& || !

基本の書き方:算術演算子

四則演算と剰余演算

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        System.out.println(a + b); // 13
        System.out.println(a - b); // 7
        System.out.println(a * b); // 30
        System.out.println(a / b); // 3
        System.out.println(a % b); // 1
    }
}

%剰余演算子(割り算の余りを求める演算子)です。
偶数・奇数の判定や、一定周期ごとに処理を行いたいときによく使われます。

インクリメント・デクリメント演算子

int count = 0;
count++; // count = 1
count--; // count = 0

count++(後置インクリメント)と++count(前置インクリメント)は、単独の文であれば結果は同じですが、代入式の中で使うと評価順序が異なります。
初心者のうちは、count++;のように単独の文として使う分には気にしなくて問題ありません。

よくあるつまずきポイント・エラー対処

整数の割り算で小数が消えるつまずき

私が実際に初心者の頃にハマった一次情報を紹介します。
平均点を計算するコードで、以下のように書いてしまいました。

❌ Before
int totalScore = 70;
int studentCount = 3;
double average = totalScore / studentCount;
System.out.println(average); // 23.0 になってしまう(期待は23.333...)

原因は、int同士の割り算はJavaでは整数除算(小数点以下を切り捨てる割り算)になるためです。
右辺の計算がint型のまま行われ、その結果をdoubleに代入する段階ではすでに小数点以下が失われています。

✅ After
int totalScore = 70;
int studentCount = 3;
double average = (double) totalScore / studentCount;
System.out.println(average); // 23.333333333333332

割り算をするにどちらか一方をdoubleにキャストすることで、計算全体が小数として行われるようになります。
「代入先の型」ではなく「計算そのものの型」を意識することが重要です。

==とequalsの取り違え

❌ Before
String name1 = new String("かつコーチ");
String name2 = new String("かつコーチ");
System.out.println(name1 == name2); // false

==は文字列の中身ではなく、オブジェクトとしての参照(メモリ上の場所)が同じかどうかを比較します。
そのため見た目が同じ文字列でも、newで別々に生成するとfalseになります。

✅ After
String name1 = new String("かつコーチ");
String name2 = new String("かつコーチ");
System.out.println(name1.equals(name2)); // true

文字列の中身を比較したいときは、必ずequalsメソッドを使いましょう。
この違いはString編で改めて詳しく解説します。

応用・一歩先の使い方

論理演算子のショートサーキット評価

int[] numbers = null;
if (numbers != null && numbers.length > 0) {
    System.out.println("要素があります");
}

&&は左側の条件がfalseの時点で右側を評価しません。
これをショートサーキット評価(短絡評価)と呼びます。
上記の例では、numbersnullの場合にnumbers.lengthを評価せずに済むため、NullPointerExceptionを防げます。
順序を意識して条件式を書くことは、実務でも頻繁に使うテクニックです。

まとめ

この記事のポイント

  • 算術演算子・比較演算子・論理演算子の3種類の役割を押さえる
  • int同士の割り算は整数除算になり、小数点以下が切り捨てられる
  • 文字列の中身比較は==ではなくequalsを使う
  • &&はショートサーキット評価によりnullチェックとの組み合わせに便利

次に読むべき記事

  • 変数とプリミティブ型の基本
  • if文・switch文で条件分岐

タグ: Java, 初心者向け, 基本文法

タイトルとURLをコピーしました