比較演算子
比較演算子には下表のような種類があります。
※オペランド:演算の対象となる値や変数のこと。
「x < y」という式では、xを左オペランド、yを右オペランドと表す。
※上記表は演算の対象となる変数がプリミティブ型であった場合の意味になります。
→ プリミティブ型についてはJavaデータ型
演算対象がオブジェクトであった場合は意味が違ってきます。
ですので、String型として定義されたstrA、strBをオペランドとして==演算子を使った場合、正しい結果が得られません。
※上記サンプルではstrAとstrBに格納されている文字列が一致するかどうか調べることを意図としています。
この場合、Stringクラスが持つequals()メソッドを使用します。
| 演算子 | 意味 | 記入例 |
|---|---|---|
| < | 右オペランドより小さい | x < y; |
| > | 右オペランドより大きい | x > y; |
| <= | 右オペランド以上 | x <= y; |
| >= | 右オペランド以下 | x >= y; |
| == | 等しい | x == y; |
| != | 異なる | x != y; |
※オペランド:演算の対象となる値や変数のこと。
「x < y」という式では、xを左オペランド、yを右オペランドと表す。
※上記表は演算の対象となる変数がプリミティブ型であった場合の意味になります。
→ プリミティブ型についてはJavaデータ型
演算対象がオブジェクトであった場合は意味が違ってきます。
class EnSample01{
public static void main(String[] args) {
int x = 3;
int y = 3;
String strA = "テスト";
String strB = "テスト";
strA += "123";
strB += "123";
System.out.println("x = " + x);
System.out.println("y = " + y);
if(x == y){
System.out.println("xとyの数値は一致します。");
}else{
System.out.println("xとyの数値は一致しません。");
}
System.out.println("strA = " + strA);
System.out.println("strB = " + strB);
if(strA == strB){
System.out.println("strAとstrBの文字列は一致します。");
}else{
System.out.println("strAとstrBの文字列は一致しません。");
}
}
}
String型は文字列を扱うために用意されたクラスです。ですので、String型として定義されたstrA、strBをオペランドとして==演算子を使った場合、正しい結果が得られません。
※上記サンプルではstrAとstrBに格納されている文字列が一致するかどうか調べることを意図としています。
この場合、Stringクラスが持つequals()メソッドを使用します。
if(strA.equals(strB) == true){
………
}
equals()メソッドは呼び出したオブジェクト(strA)と、引数で渡したオブジェクト(strB)の文字列が一致した場合、boolean型のtrueを返します。
