비교 연산자는 두 피 연산자를 비교하는데 사용되는 연산자다.

연산 결과는 boolean타입인 true와 false로 출력된다.

 

대소 비교 연산자 <, >, <=, >=

boolean과 참조형을 제외한 나머지에 다 사용 가능한 연산자이다.

비교연산자 연산결과
> 좌변 값이 크면, true 아니면 false
< 좌변 값이 작으면 true 아니면 false
>= 좌변값이 크거나 같으면 true 아니면false
<= 좌변 값이 작거나 같으면 true 아니면 false

주의할 점은 <=와 >=의 연산자는 순서를 틀리면 안 된다는 점이다.

 

등가 비교 연산자

두 피연산자의 값이 같은지 또는 다른지를 비교하는 연산자이다.

 

비교 연산자도  
   
   

 

public class OperatorEX22 {
	public static void main(String[] args) {
		float f = 0.1f;
		double d = 0.1;
		double d2 = (double) f;

		System.out.printf("10.0==10.0f	%b%n ", 10.0 == 10.0f);
		System.out.printf("0.1==0.1f	%b%n ", 0.1 == 0.1f);
		System.out.printf("f=%19.17f%n ", f);
		System.out.printf("d =%19.17f%n ", d);
		System.out.printf("d2=%19.17f%n ", d2);
		System.out.printf("d==f %b%n ", d == f);
		System.out.printf("d==d2 %b%n ", d == d2);
		System.out.printf("d2==f %b%n ", d2 == f);
		System.out.printf("(float)d==f %b%n ", (float) d == f);
	}
}
10.0==10.0f	true
 0.1==0.1f	false
 f=0.10000000149011612
 d =0.10000000000000000
 d2=0.10000000149011612
 d==f false
 d==d2 false
 d2==f true
 (float)d==f true

이항 연산자이므로 연산을 수행하기 전에 형 변환을 통해 두 피연산자의 타입을 같게 맞춘 다음 피연산자를 비교한다.

 

문자열의 비교

두 문자열을 비교할 때는, 비교 연산자'=='대신 equals()라는 메서드를 사용해야 한다.\비교 연산자는 두 문자열이 완전히 같은 것인지 비교할 뿐이므로, 문자열의 내용이 같은지 비교하기 위해서는 equals()를 사용하는 것이다.

public class OperatorEx23_ {
	public static void main(String[] args) {
		String str1 = "abc";
		String str2 = new String("abc");
		

		System.out.printf("\"abc\"==\"abc\" ? %b%n", "abc"=="abc");
		System.out.printf(" str1==\"abc\" ? %b%n", str1=="abc");
		System.out.printf(" str1==\"abc\" ? %b%n", str2=="abc");
		System.out.printf("str1.equals(\"abc\") ? %b%n", str1.equals("abc"));
		System.out.printf("str2.equals(\"abc\") ? %b%n", str2.equals("abc"));
		System.out.printf("str2.equalsIgnotreCase(\"abc\") ? %b%n", str2.equalsIgnoreCase("abc"));
	}
}
"abc"=="abc" ? true
 str1=="abc" ? true
 str1=="abc" ? false
str1.equals("abc") ? true
str2.equals("abc") ? true
str2.equalsIgnotreCase("abc") ? true

str2와 'abc'의 내용이 같아도 false를 얻는다. 내용이 같지만 서로 다른 객체라서 그렇다.

+ Recent posts