비교와 Boolean

쌩 초보의 개발로그·2022년 4월 13일
0

자바 공부

목록 보기
6/10
post-thumbnail

Boolean이란?

Boolean(불린)은 참과 거짓을 의미하는 데이터 타입이며 bool이라고도 부른다.

불린은 정수나 문자와 같이 데이터 타입인데, 참을 의미하는 true와 거짓을 의미하는 false 두 가지의 값만 가지고 있다.

비교 연산자 (관계 연산자)

비교 연산자는 프로그래밍에서 주어진 값이 같은지, 다른지, 큰지, 작은지를 구분하는 것들을 의미한다.

이때 비교 연산자를 사용하는데 비교 연산자는 Boolean, 즉 true와 false 둘 중 하나이다.

일단 비교 연산자의 종류와 의미를 표로 살펴보자.

위 표에서 비교 연산자의 종류와 의미를 살펴 보았으니, 예시를 살펴보자.

==

public static void main(String[] args) {
        System.out.println(2==2); // true
        System.out.println(3==5); // false
        System.out.println("Apple"=="good"); // false
        System.out.println("Apple"=="Apple"); // true
    }

위를 보면 == 를 사용해 값이 같다면 true를 값이 같지 않다면 false를 출력하는 결과값을 볼 수 있다.

.equals 가 아니여도 문자열을 비교하는 연산자로 사용을 할 수 있다.

!=

public static void main(String[] args) {
        System.out.println(2!=2); // false
        System.out.println(3!=5); // true
        System.out.println("Apple"!="good"); // true
        System.out.println("Apple"!="Apple"); // false
    }

위를 보면 ==와 반대로 !=를 사용하면 "같지않다" 라는 연산자이기 때문에 같은 값을 가지고 있는 2는 false로 뜨고 서로 다른 값을 가지고 있는 3과 5에서는 true라고 뜨는것을 확인할 수 있다.

>, >= (<, <=)

public static void main(String[] args) {
        System.out.println(5>10); // false
        System.out.println(10>5); // true
        System.out.println(10>10); // false

        System.out.println(5>=10); // false
        System.out.println(10>=5); // true
        System.out.println(10>=10); // true
    }

위를 보면 2행에서 좌항이 우항보다 작기때문에 false를 출력하고 3행에서는 좌항이 우항보다 크기 때문에 true를 출력한다. 그리고 4행에서는 좌항과 우항이 같기 때문에 false를 출력한다.

6행도 동일하게 좌항이 우항보다 작고 같지 않기 때문에 false를 출력하고 7행은 좌항과 우항이 같지는 않지만 크기 때문에 true를 출력하며 8행에서는 좌항과 우항이 같은데 =을 가지고 있기 때문에 true의 값이 나온다.

< 와 <= 은 이거의 반대이기 때문에 예시를 따로 작성해 두진 않겠다.

.equals

public static void main(String[] args) {
        String a = "Apple is good";
        String b = new String("Apple is good");
        System.out.println(a == b); // false
        System.out.println(a.equals(b)); // true
    }

변수 a와 b에 각각 문자열을 생성, 저장을 했다. 변수 b 즉 String b는 생성자를 이용하고 있기 때문에 이것은 후에 더 복습을 하기러 하고 결과를 살펴보자. 4행에서는 false의 값을 출력했다. 왜그럴까?

그 이유는 ==은 각 데이터 타입이 동일한 객체인지를 알아내기 위해서 사용하는 연산자 이기 때문에 b에 담긴 데이터 객체와 a가 다르다고 판단을해 false의 값을 뱉어냈다. 이를 보안하는 방법이 equals 이고 이것을 사용해서 서로 다른 객체간 담긴 값이 같은지 비교할 수 있다. 문자와 문자를 비교할때는 == 이 아닌 .equals 를 사용한다고 생각하자.

profile
안녕하세요 쌩 초보 장휘주 입니다. 열심히 하는 개발자가 될게요.

0개의 댓글