IT/Java

[Java] 비교 연산자

Huitopia 2024. 2. 21. 10:20
728x90

비교 연산자

비교 연산자는 동등(==, !=) 또는 크기(<, <=, >, >=)를 평가해서 boolean 타입인 true/false를 산출한다. 주로 흐름 제어문인 조건문(if), 반복문(for, while)에서 실행 흐름을 제어할 때 사용한다.

구분 연산식 설명
동등 비교 피연산자1 == 피연산자2 값이 같은지
피연산자1 != 피연산자2 값이 다른지
크기 비교 피연산자1 > 피연산자2 피연산자1이 피연산자2 보다 큰지
피연산자1 >= 피연산자2 피연산자1이 피연산자2 보다 크거나 같은지
피연산자1 < 피연산자2 피연산자1이 피연산자2 보다 작은지
피연산자1 <= 피연산자2 피연산자1이 피연산자2 보다 작거나 같은지

 

만약 두 피연산자의 타입이 다를 경우 비교 연산을 수행하기 전에 타입을 일치시킨 후 수행한다.

'A' == 65

'A'가 int 타입으로 변환되어 65가 된 다음 65==65로 비교한다.

3 == 3.0

3을 double 타입인 3.0으로 변환 후 3.0 == 3.0으로 비교한다.

0.1f == 0.1

0.1f를 double 타입으로 변환 후 0.1 == 0.1로 비교하면 된다 생각했지만 여기는 예외다.

부동 소수점 방식을 사용하는 실수 타입은 0.1을 정확히 표현 못 하며 float 타입과 double 타입의 정밀도 차이 때문이다.

0.1 == (float) 0.1

이 둘을 비교하려면 0.1을 float 타입으로 강제 변환 후 비교 연산을 진행한다.

 

 

문자열 비교

문자열은 동등(==, !=) 연산자 대신 equals()와 !equals()를 사용한다.

boolaen result = str1.equals(str2);
boolean result = ! str1.equals(str2);

 

 

예제 코드

package ch03.sec06;

public class CompareOperatorExample {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 10;
        boolean result1 = (num1 == num2);
        boolean result2 = (num1 != num2);
        boolean result3 = (num1 <= num2);
        System.out.println("result1 : " + result1); // true
        System.out.println("result2 : " + result2); // false
        System.out.println("result3 : " + result3); // true

        char char1 = 'A';
        char char2 = 'B';
        boolean result4 = (char1 > char2); // 65 > 66
        System.out.println("result4 : " + result4); // false

        int num3 = 1;
        double num4 = 1.0;
        boolean result5 = (num3 == num4);
        System.out.println("result5 : " + result5); // true

        float num5 = 0.2f;
        double num6 = 0.2;
        boolean result6 = (num5 == num6);
        boolean result7 = (num5 == (float) num6);
        System.out.println("result6 : " + result6); // false
        System.out.println("result7 : " + result7); // true

        String str1 = "자바";
        String str2 = "Java";
        boolean result8 = (str1.equals(str2));
        boolean result9 = (!str1.equals((str2)));
        System.out.println("result8 : " + result8); // false
        System.out.println("result9 : " + result9); // true
    }
}
728x90