Java の比較演算子「==, !=, >, <」を使って条件を判定しよう
新人
「Java で数値を比較する方法はありますか?」
先輩
「Java では、比較演算子 を使って、2 つの値が等しいか、大きいか、小さいかを判定できるよ。」
新人
「どんな記号を使うんですか?」
先輩
「比較演算子には、==(等しい)、!=(等しくない)、>(大きい)、<(小さい) などがあるよ。詳しく見てみよう!」
1. 比較演算子とは?(基本的な説明)
Java では、比較演算子 を使って、2 つの値の関係を調べることができます。
比較演算子の種類
- ==(等しい) … 2 つの値が等しいかどうかを判定
- !=(等しくない) … 2 つの値が異なるかどうかを判定
- > … 左の値が右の値より大きいかどうかを判定
- < … 左の値が右の値より小さいかどうかを判定
例えば、次のようなコードで比較を行えます。
public class ComparisonExample {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println("a == b: " + (a == b));
System.out.println("a != b: " + (a != b));
System.out.println("a > b: " + (a > b));
System.out.println("a < b: " + (a < b));
}
}
a == b: false
a != b: true
a > b: true
a < b: false
このように、比較演算子を使えば、値の大小や一致・不一致を簡単に判定できます。
2. 「==」と「!=」の使い方(値が等しいかどうかを判定)
==(イコール) は 2 つの値が等しいかどうかを調べるときに使います。
==(等しい)の例
例えば、次のプログラムでは 2 つの値が同じかどうかを確認します。
public class EqualCheck {
public static void main(String[] args) {
int x = 10;
int y = 10;
boolean isEqual = x == y;
System.out.println("x と y は等しいか?: " + isEqual);
}
}
x と y は等しいか?: true
このように、== を使うと、2 つの値が等しいかどうかを確認できます。
!=(等しくない)の例
!=(ノットイコール) は 2 つの値が異なるかどうかを調べるときに使います。
public class NotEqualCheck {
public static void main(String[] args) {
int x = 10;
int y = 5;
boolean isNotEqual = x != y;
System.out.println("x と y は異なるか?: " + isNotEqual);
}
}
x と y は異なるか?: true
!= を使うと、値が違うかどうかを判定できます。
3. 「>」と「<」の使い方(大小を判定する方法)
Java では、>(大きい) と <(小さい) を使って、数値の大小を比較することができます。
>(大きい)の例
次のプログラムでは、2 つの値を比較し、大きいかどうかを判定します。
public class GreaterThanCheck {
public static void main(String[] args) {
int a = 15;
int b = 10;
boolean isGreater = a > b;
System.out.println("a は b より大きいか?: " + isGreater);
}
}
a は b より大きいか?: true
このように、> を使うと、左側の値が右側の値より大きいかどうかを判定できます。
<(小さい)の例
< を使うと、左側の値が右側の値より小さいかどうかを判定できます。
public class LessThanCheck {
public static void main(String[] args) {
int a = 5;
int b = 10;
boolean isLess = a < b;
System.out.println("a は b より小さいか?: " + isLess);
}
}
a は b より小さいか?: true
このように、数値の比較をすることで、値の大小を判断できます。
4. 比較演算子を使った簡単な条件判定の例
比較演算子を使って、特定の条件を満たしているかどうかを判定することができます。
2 つの数値を比較して大きい方を判定する
例えば、2 つの数値のどちらが大きいかを判定してみましょう。
public class CompareNumbers {
public static void main(String[] args) {
int x = 20;
int y = 15;
boolean xIsBigger = x > y;
boolean yIsBigger = y > x;
System.out.println("x は y より大きいか?: " + xIsBigger);
System.out.println("y は x より大きいか?: " + yIsBigger);
}
}
x は y より大きいか?: true
y は x より大きいか?: false
このように、> や < を使って、どちらの数値が大きいかを判定できます。
2 つの数値が等しいかどうかを判定する
2 つの値が同じかどうかを調べるには、== を使います。
public class EqualCheck {
public static void main(String[] args) {
int a = 10;
int b = 10;
boolean isEqual = a == b;
System.out.println("a と b は等しいか?: " + isEqual);
}
}
a と b は等しいか?: true
比較演算子を活用することで、さまざまな条件判定ができるようになります。
5. 比較演算子の注意点(データ型による違い)
比較演算子は、データ型によって動作が異なる場合があります。
整数型(int)と小数型(double)の比較
整数(int)と小数(double)を比較すると、小数の方が精度が高くなります。
public class DataTypeComparison {
public static void main(String[] args) {
int a = 5;
double b = 5.0;
System.out.println("a == b: " + (a == b));
System.out.println("a > b: " + (a > b));
System.out.println("a < b: " + (a < b));
}
}
a == b: true
a > b: false
a < b: false
この場合、整数型の 5 と小数型の 5.0 は等しいと判定されます。
文字列の比較に注意
Java では、文字列の比較には == ではなく equals メソッドを使います。
public class StringComparison {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Java";
System.out.println("str1 == str2: " + (str1 == str2));
System.out.println("str1.equals(str2): " + str1.equals(str2));
}
}
str1 == str2: true
str1.equals(str2): true
このように、文字列を比較するときは、== ではなく equals メソッドを使いましょう。
6. 比較演算子を使った計算の例(数値の比較)
比較演算子を使って、数値を比較する具体的な例を見てみましょう。
数値の大小を判定する
例えば、2 つの数を比較して、どちらが大きいかを判定するプログラムです。
public class NumberComparison {
public static void main(String[] args) {
int num1 = 25;
int num2 = 30;
System.out.println("num1 == num2: " + (num1 == num2));
System.out.println("num1 != num2: " + (num1 != num2));
System.out.println("num1 > num2: " + (num1 > num2));
System.out.println("num1 < num2: " + (num1 < num2));
}
}
num1 == num2: false
num1 != num2: true
num1 > num2: false
num1 < num2: true
このプログラムでは、数値の比較を行い、true または false の結果を返します。
条件に応じたメッセージを表示する
次に、比較演算子を使って、どちらの数値が大きいかを判定し、適切なメッセージを表示するプログラムです。
public class CompareNumbersWithMessage {
public static void main(String[] args) {
int num1 = 45;
int num2 = 20;
if (num1 > num2) {
System.out.println("num1 は num2 より大きいです。");
} else if (num1 < num2) {
System.out.println("num1 は num2 より小さいです。");
} else {
System.out.println("num1 と num2 は等しいです。");
}
}
}
num1 は num2 より大きいです。
このように、比較演算子を使って、条件に応じたメッセージを出力できます。
7. 文字列の比較について(equals メソッドとの違い)
Java では、文字列の比較に == を使うと、期待通りの動作をしない場合があります。
== で文字列を比較する場合の問題
以下のプログラムでは、文字列を比較しています。
public class StringComparison {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Java";
System.out.println("str1 == str2: " + (str1 == str2));
}
}
str1 == str2: true
この場合、== でも比較が成功していますが、これは Java が同じ文字列リテラルを同じメモリ領域に格納しているためです。
equals メソッドを使う
しかし、異なるオブジェクトとして生成された文字列を比較すると、== では正しく判定できません。
public class StringEqualsCheck {
public static void main(String[] args) {
String str1 = new String("Java");
String str2 = new String("Java");
System.out.println("str1 == str2: " + (str1 == str2));
System.out.println("str1.equals(str2): " + str1.equals(str2));
}
}
str1 == str2: false
str1.equals(str2): true
== ではメモリのアドレスを比較するため、異なるオブジェクトとして生成された場合は false になります。
文字列の内容を比較する場合は、必ず equals メソッドを使いましょう。
8. 練習問題:比較演算子を使ったプログラムを作ろう
最後に、比較演算子を使って簡単なプログラムを作成してみましょう。
問題 1: 2 つの数値を比較する
ユーザーが入力した 2 つの数値を比較し、大きい方を表示するプログラムを作りましょう。
import java.util.Scanner;
public class CompareTwoNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("1つ目の数値を入力してください: ");
int num1 = scanner.nextInt();
System.out.print("2つ目の数値を入力してください: ");
int num2 = scanner.nextInt();
if (num1 > num2) {
System.out.println("大きい数値は: " + num1);
} else if (num1 < num2) {
System.out.println("大きい数値は: " + num2);
} else {
System.out.println("2つの数値は等しいです。");
}
scanner.close();
}
}
1つ目の数値を入力してください: 15
2つ目の数値を入力してください: 10
大きい数値は: 15
問題 2: 文字列の比較をする
ユーザーが入力した 2 つの文字列を比較し、同じかどうかを判定するプログラムを作りましょう。
import java.util.Scanner;
public class CompareStrings {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("1つ目の文字列を入力してください: ");
String str1 = scanner.nextLine();
System.out.print("2つ目の文字列を入力してください: ");
String str2 = scanner.nextLine();
if (str1.equals(str2)) {
System.out.println("2つの文字列は同じです。");
} else {
System.out.println("2つの文字列は異なります。");
}
scanner.close();
}
}
1つ目の文字列を入力してください: Java
2つ目の文字列を入力してください: Java
2つの文字列は同じです。
このように、比較演算子や equals メソッドを使うことで、数値や文字列の比較を簡単に行うことができます。