본문 바로가기

자바 언어 기초 - 연산자

비교 연산자

비교 연산자

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


    출처, 이것이 자바다


  • 문자열을 비교할 때는 동등(==, !=) 연산자 대신 equals()와 !equals()를 사용
package ch03.sec06;

/*
 비교연산자 : ==, !=, >, >=, <, <= 의 결과값은 boolean의 true, false 의 값을 갖는다.
 */
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'; //유니코드 65. 소문자a 97
        char char2 = 'B'; //유니코드 66. 소문자b 98
        boolean result4 = (char1 < char2);
        System.out.println("result4: " + result4); -> true

        int num3 = 1;
        double num4 = 1.0;
        //타입일치 : num3변수가 int형 -> double형으로 변환되고, 비교가 일어난다.
        boolean result5 = (num3 == num4);
        System.out.println("reslut5: " + result5); -> true

        //특이사항. 실수데이터형은 부동소수점 방식으로 데이터를 표현하고, 0.1은 정밀도 오차가 발생이 된다.
        float num5 = 0.1f; 
        double num6 = 0.1;
        //0.1자체로 저장되는 것이 아니라, 정밀도에 의하여 0.09999999999998오차의 값으로 저장하고 double형으로 변환된다.
        //double형으로 변환
        boolean result6 = (num5 == num6);
        boolean result7 = (num5 == (float)num6);
        System.out.println("result6: " + result6); -> false
        System.out.println("result7: " + result7); -> true

        //문자열비교. equals()메소드 사용
        String str1 = "자바";
        String str2 = "Java";
        boolean result8 = (str1.equals(str2));
        boolean result9 = (! str1.equals(str2)); // ! not 반대의미
        System.out.println("result8: " + result8); -> false
        System.out.println("result9: " + result9); -> true

    }

}

'자바 언어 기초 - 연산자' 카테고리의 다른 글

대입 연산자  (0) 2023.01.14
논리 연산자  (0) 2023.01.14
나눗셈 연산 후 NaN과 Infinity 처리  (0) 2023.01.14
정확한 계산은 정수 연산으로  (0) 2023.01.14
오버플로우와 언더플로우  (0) 2023.01.14