【Java入門】演算子を使って比較しよう!

投稿日: 作成:   更新:

Javaの比較演算子、論理演算子について解説します。

比較演算子、論理演算子はif文などの条件分岐で使用されます。
日本語だけだと何だかわからないと思いますが、

  • 比較演算子は「==、!=、<、>」
  • 論理演算子は「&&、||」

のことです。

何かとソースコードのif文で使っているのを見たことあると思います。

今回は、この比較演算子、論理演算子について解説します。

それでは行きましょう!

比較演算子

比較演算子はif文などの条件分岐で「x == y」のように2つの値や変数を比較するために使用する演算子です。

どのプログラミングでも共通して言えますが、
「= (イコール1つ)」だと変数へ代入となりますので、同じかどうか比較するには「== (イコール2つ)」で記述します。

比較演算子の一覧

「==」の他にも「異なる、より大きい・より小さい、以上・以下」の比較方法がありますので、次の一覧にまとめました。

演算子使い方意味
==x == yx と y の値は同じ
!=x != yx と y の値が異なる
>x > yx は y より大きい
>=x >= yx は y 以上
<x < yx は y より小さい
<=x <= yx は y 以下

色んな比較演算子がありますね。
次は実際にソースコードに書いてみます。

比較演算子を使ってみる

ほんの一部ですが、「!=、<」の2つをピックアップして使ってみました。
if文の条件が一致したときだけ文字を表示するようにソースコードを書いています。

Integer x = 10;
Integer y = 20;

if (x != y) {
    System.out.println("x と y の値が異なる");
}

if (x < y) {
    System.out.println("x と y より小さい");
}

実行結果:

「!=、<」どちらも条件に一致したので、文字が表示されました。

このように2つの変数を比較することができます。

論理演算子

論理演算子は、複数の条件を組み合わせたいときに使用します。

論理演算子の一覧

論理演算子の一覧をまとめました。

演算子使い方意味
&&x && yand 条件で判定する。
x と y は両方とも true の時 true
||x || $yor 条件で判定する。
x と y の少なくとも1つが true の時 true
!!xnot 条件で判定する。
x が trueの時 false、
false の時 true

論理演算子の判定イメージ(ベン図)

一覧の意味を見てもよくわからないと思いますので、ベン図というイメージを使って解説します。

論理演算子の判定イメージは「ベン図」を見るとわかりやすいです。
基本情報技術者試験などの参考書によく出てくるやつです。

&&(and 条件)

xとyの円がちょうど重なった青色の部分であるかを判定します。
xとyの両方が true の時 true となります。

|| (or 条件)

xとyの円自体であるか判定します。
x と y の少なくとも1つが true の時 true となります。

!(not 条件)

xの円ではない部分であるか判定します。
x が true の時 false となり、x が false の時 true に判定が反転します。

論理演算子を使ってみる

if文を使って論理演算子の判定をしてみます。

Boolean x = true;
Boolean y = false;

//and
if (x && y) {
    System.out.println("x, y は両方とも true");
} else {
    System.out.println("x, y は両方 true ではない");
}

//or
if (x || y) {
    System.out.println("x, y の少なくとも1つが true");
} else {
    System.out.println("x, y は両方とも false");
}

//not
if (!x) {
    System.out.println("x に入ってる値は false");
} else {
    System.out.println("x に入ってる値は true");
}

x には true を、y には false を入れて「&&、||、!」を判定するソースコードを書いてみました。

and判定は「false」、or判定は「true」、not判定は「true」となりました。

上記のようにBoolean型単体の判定は、実際の現場ではフラグ判定によく使ったりします。例えば「メール送信フラグで、2回目以降はメール送信しない」など。

Boolean型以外では比較演算子と組み合わせて使ったりします。
次で解説します。

比較演算子、論理演算子をif文で使ってみる(組み合わせ)

最後に、
これまで論理演算子だけの判定について解説しましたが、比較演算子と組み合わせを紹介します。

Integer x = 10;
Integer y = 20;

if (x != y && x < 100) {
    System.out.println("x は y とは値が異なり、かつ100より小さい");
}

実行結果:

x を中心にif文で判定しました。
x は y と同じで、100より小さいかの複数の比較条件で判定しています。

まとめ

Javaの比較演算子、論理演算子について次の内容を解説しました。

  • 比較演算子(一覧、使い方)
  • 論理演算子(一覧、使い方、ベン図)
  • 比較演算子、論理演算子の組み合わせ

比較演算子、論理演算子は基本的なJava構文ですが、「どんなことができるか」の感触をつかめたら良いと思います。

あとで実際にソースコードを書くときにこの記事を見ていただければ幸いです。