演算子とは?Javaで使用される代表的な演算子を分かりやすく解説

Javaで使用される演算子が沢山種類があってどれを使っていいか分からない・・・。

Javaでは、様々な演算子が登場します。演算子はそれぞれ使い方が違ってくるため、初心者の方にとっては躓きポイントかもしれません。そこで本記事では代表される演算子である、

  • 算術演算子
  • 比較演算子
  • 代入演算子
  • 三項演算子
  • 論理演算子

の5つの演算子をコード例を交えながらわかりやすく解説します。

算術演算子一覧

Javaでは、数値の計算を行うために「算術演算子」と呼ばれる記号を使用します。算術演算子は5種類あり、記号と説明を一覧にしました。

演算子説明
+加算(足し算)
減算(引き算)
*乗算(掛け算)
/除算(割り算)
%剰余(余り)

コード例

ここからは算術演算子を用いた具体的なコード例を紹介します。

1. 加算演算子(+)

「+」は、2つの数値を足し合わせるための演算子です。下記はint型の変数aとbにそれぞれ値を代入し計算した例となります。

Java
int a = 5;
int b = 3;
int result = a + b;
System.out.println(result); // 出力: 8

2. 減算演算子(-)

「-」は、2つの数値を引き算するための演算子です。下記はint型の変数aとbにそれぞれ値を代入し計算した例となります。

Java
int a = 5;
int b = 3;
int result = a - b;
System.out.println(result); // 出力: 2

3. 乗算演算子(*)

「*」は、2つの数値を掛け算するための演算子です。下記はint型の変数aとbにそれぞれ値を代入し計算した例となります。

Java
int a = 5;
int b = 3;
int result = a * b;
System.out.println(result); // 出力: 15

4. 除算演算子(/)

「/」は、2つの数値を割り算するための演算子です。ただし、割り算の結果が整数になる場合、小数点以下は切り捨てられます。下記はint型の変数aとbにそれぞれ値を代入し計算した例となります。

Java
int a = 10;
int b = 3;
int result = a % b;
System.out.println(result); // 出力: 1

割り算を行う際に、0で割るとエラー(ArithmeticException)が発生しますので注意が必要です。

5. 剰余演算子(%)

「%」は、割り算の余りを求めるための演算子です。下記はint型の変数aとbにそれぞれ値を代入し計算した例となります。

Java
int a = 10;
int b = 3;
int result = a % b;
System.out.println(result); // 出力: 1

算術演算子の優先順位

基本的には算数と同じルールが適用されます。Javaの算術演算子の優先順位は、学校で学ぶ算数の四則演算と同じです。

具体的には以下の順番です。

1.括弧()を最優先で計算

2.掛け算、割り算、余り

3.加算、減算

したがって、算数と同じ感覚で計算を行えば期待通りの結果が得られます。

補足

加算演算子(+)を使って文字列を結合することもできます。コード例を紹介します。

Java
public class StringAdditionExample {
    public static void main(String[] args) {
        String firstName = "山田";
        String lastName = "太郎";

        // 文字列の足し算でフルネームを作る
        String fullName = firstName + " " + lastName;

        System.out.println("フルネーム: " + fullName);
    }
}

この場合は「フルネーム:山田 太郎」と出力されます(firstNameとlastNameの間に半角スペースが入っています)。

比較演算子一覧

比較演算子は6種類あり、記号と説明を一覧にしました。

演算子説明
>大なり:左の値が右の値より大きいか
>=大なりイコール:左の値が右の値以上か
<小なり:左の値が右の値より小さいか
<=小なりイコール:左の値が右の値以下か
==等しい:2つの値が等しいか
!=等しくない:2つの値が等しくないか

1.>(大なり)

Java
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        System.out.println(a > b); // 出力: true (aはbより大きい)
    }
}

「a>b」のように記述し、左側の値が右側の値より大きい場合にtrueを返す比較演算子です。

2. >=(大なりイコール)

Java
public class Main {
    public static void main(String[] args) {
        int a = 5;
        int b = 5;
        System.out.println(a >= b); // 出力: true (aはbと等しい)
    }
}

「a>=b」のように記述し、左側の値が右側の値以上であればtrueを返します。

3.<(小なり)

Java
public class Main {
    public static void main(String[] args) {
        int a = 3;
        int b = 8;
        System.out.println(a < b); // 出力: true (aはbより小さい)
    }
}

「a<b」のように記述し、左側の値が右側の値より小さい場合にtrueを返す演算子です。

4.<=(小なりイコール)

Java
public class Main {
    public static void main(String[] args) {
        int a = 4;
        int b = 4;
        System.out.println(a <= b); // 出力: true (aはbと等しい)
    }
}

「a<=b」のように記述し、左側の値が右側の値以下の場合にtrueを返します。

5.==(等しい)

Java
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        System.out.println(a == b); // 出力: true (aはbと等しい)
    }
}

「a==b」のように記述し、2つの値が等しい場合にtrueを返します。値が一致するかをチェックする際に使います。

6.!=(等しくない)

Java
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        System.out.println(a != b); // 出力: true (aはbと等しくない)
    }
}

「a!=b」のように記述し、2つの値が等しくない場合にtrueを返す演算子です。

※注意

Javaでは、代入演算子「=」と比較演算子「==」が異なる役割を持っています。この2つを混同すると、意図しない動作をしてしまうので注意が必要です。

  • 「=」は、変数に値を代入するために使用します。
  • 「==」は、2つの値が等しいかどうかを比較するために使用します。
Java
int a = 5;
if (a == 5) {  // 等価演算子: aが5に等しいかをチェック
    System.out.println("aは5です");
}

if (a = 5) {  // 代入演算子を間違って使うと、意図しない結果になる
    System.out.println("これはエラーになります");
}

代入演算子一覧

Javaでは変数に値を代入する際に「代入演算子」と呼ばれる記号を使用します。代入演算子は6種類あり、記号と説明を一覧にしました。

演算子説明
=代入
+=加算して代入
-=減算して代入
*=乗算して代入
/=除算して代入
%=剰余を計算して代入

コード例

ここからは代入演算子を用いた具体的なコード例を紹介します。

1.基本の代入演算子

Java
public class Main {
    public static void main(String[] args) {
        int a = 5; // aに5を代入
        System.out.println("a = " + a); // 出力: a = 5
    }
}

2.加算して代入

Java
public class Main {
    public static void main(String[] args) {
        int a = 5;
        a += 3; // a = a + 3 と同じ意味
        System.out.println("a = " + a); // 出力: a = 8
    }
}

3.減算して代入

Java
public class Main {
    public static void main(String[] args) {
        int a = 10;
        a -= 4; // a = a - 4 と同じ意味
        System.out.println("a = " + a); // 出力: a = 6
    }
}

4.乗算して代入

Java
public class Main {
    public static void main(String[] args) {
        int a = 6;
        a *= 2; // a = a * 2 と同じ意味
        System.out.println("a = " + a); // 出力: a = 12
    }
}

5.除算して代入

Java
public class Main {
    public static void main(String[] args) {
        int a = 20;
        a /= 4; // a = a / 4 と同じ意味
        System.out.println("a = " + a); // 出力: a = 5
    }
}

6.剰余して代入

Java
public class Main {
    public static void main(String[] args) {
        int a = 10;
        a %= 3; // a = a % 3 と同じ意味
        System.out.println("a = " + a); // 出力: a = 1
    }
}

三項演算子

Javaにおいて1行で簡単に条件判断を行うための便利な演算子です。

構文

  • 条件式がtrueの場合は「真の場合の値」が返されます。
  • 条件式がfalseの場合は「偽の場合の値」が返されます。
Java
条件式 ? 真の場合の値 : 偽の場合の値;

コード例

Java
int a = 10;
int b = 5;
int max = (a > b) ? a : b;
System.out.println("大きい方の値は: " + max);

この例では、a > btrueならaが、falseならbmaxに代入されます。結果として、a10なので、出力は「大きい方の値は: 10」となります。

三項演算子の特徴

  • シンプルに条件分岐が記述できるため、短い条件分に向いています。
  • 長く複雑な条件式にはif-else文を使用した方が可読性が高いです。

三項演算子のデメリット

  • 可読性が低下する

三項演算子を過剰に使用すると、コードの可読性が悪くなることがあります。特に、条件が複雑になった場合や、入れ子にして使用すると、どの条件で何が起こっているか理解しづらくなります。

Java
int result = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

上記のような入れ子の三項演算子は、読むのが難しくなり、保守性も悪化します。if-else文で書いた方が明確です。

論理演算子一覧

論理演算子とは、Javaで条件式を組み合わせたり、条件結果を操作するために使用する演算子です。

演算子説明
&&両方の条件がtrueの場合にのみ、結果がtrueになります。
どちらか一方でもfalseなら結果はfalse。
||どちらか一方、または両方の条件がtrueなら、結果がtrueになります。
両方がfalseの場合のみ、結果がfalse。
!値を反転させる単項演算子。
trueをfalseに、falseをtrueにします。
^両方の条件が異なる場合にtrue。
両方が同じ場合(両方trueまたは両方false)にfalse。

コード例

ここからは論理演算子を用いた具体的なコード例を紹介します。

  • &&(AND演算子)

「宿題をやっていて、部屋が片付いていれば遊びに行ける」を例えにした場合、コードでは下記のように表現できます。もしどちらか一方出来ていない状態だった場合(falseの場合)は「遊びに行けない…」が出力されます。

Java
public class LogicalOperatorExample {
    public static void main(String[] args) {
        boolean didHomework = true; // 宿題をやった
        boolean cleanedRoom = true; // 部屋が片付いている

        if (didHomework && cleanedRoom) {
            System.out.println("遊びに行ける!");
        } else {
            System.out.println("遊びに行けない...");
        }
    }
}
  • ||(OR演算子)

「天気の状況で傘を持っていくか、持っていかないか」を例えにした場合、コードは下記のように表現できます。どちらか一方が「true」の場合は「傘を持っていく」が出力されます。

Java
public class LogicalOperatorExample {
    public static void main(String[] args) {
        boolean isRaining = false; // 雨が降っている
        boolean isSunny = true;   // 晴れている

        if (isRaining || isSunny) {
            System.out.println("傘を持っていく");
        } else {
            System.out.println("傘はいらない");
        }
    }
  • !(NOT演算子)

「宿題をやっていない場合、お母さんに怒られる!」を例えにした場合、コードは下記のように表現できます。宿題をやっていない場合(falseの場合)、「!」でfalseの逆であるtrueになり、「お母さんに怒られる!」が出力されます。

Java
public class LogicalOperatorExample {
    public static void main(String[] args) {
        boolean didHomework = false; // 宿題をやっていない

        if (!didHomework) {
            System.out.println("お母さんに怒られる!");
        } else {
            System.out.println("怒られない!");
        }
    }
}
  • ^(XOR演算子)

「友達が遊びに来るか、自分が遊びに行くか、どちらか一方だけの場合に部屋を片付ける」を例えにした場合、コードは下記のように表現できます。両方の条件が異なる場合「ture」を返すので、「部屋を片付ける」が出力されます。

Java
public class LogicalOperatorExample {
    public static void main(String[] args) {
        boolean friendComes = true;  // 友達が来る
        boolean iVisitFriend = false; // 自分が友達の家に行く

        if (friendComes ^ iVisitFriend) {
            System.out.println("部屋を片付ける");
        } else {
            System.out.println("部屋を片付けない");
        }
    }
}

まとめ

今回は演算子についてまとめましたがいかがだったでしょうか?今まで分からなかった方でも、コード例を紹介したのでぜひ参考にしてみてください。

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