# 비교 연산자와 문자열의 비교

## 비교 연산자

| 비교 연산자 |                   설명                  |
| :----: | :-----------------------------------: |
|   ==   |    왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함.   |
|   !=   |  왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함.  |
|    >   |    왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함.   |
|   >=   | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함. |
|    <   |   왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함.   |
|   <=   | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함. |

* 두 피연산자를 비교해서 <mark style="color:blue;">true</mark>(참) 또는 <mark style="color:blue;">false</mark>(거짓)를 반환합니다.

* 아래 예제코드로 학습해 보겠습니다.

{% code lineNumbers="true" %}

```java
class Operator6_1 {
    public static void main(String[] args) {
        int n1 = 10, n2 = 6;
        char c1 = 'A', c2 = 'B';

        System.out.print("n1 >= n2 = " ); // true
        System.out.println(n1 >= n2);
        System.out.print("n1 <= n2 = " ); // false
        System.out.println(n1 <= n2);

        System.out.print("n1 == n2 = " ); // false
        System.out.println(n1 == n2);
        System.out.print("n1 != n2 = " ); // true
        System.out.println(n1 != n2);

        // 산술변환 규칙에 의해서 char 타입이 int 타입으로 변환되어 연산됨
        System.out.print("c1 < c2 = "); // true
        System.out.println(c1 < c2); // 65 < 66
        System.out.print("c1 > c2 = "); // false
        System.out.println(c1 > c2); // 65 > 66
    }
}
```

{% endcode %}

## 문자열의 비교

> ### 문자열 비교에는 == 대신 equals()를 사용해야 합니다.
>
> * equals : 비교하고자 하는 두 피연산자의 값 자체를 비교합니다.
> * \== : 비교하고자 하는 두 피연산자의 주소값을 비교합니다.

* 아직 뒤에서 배우는 내용을 학습하기 전이라 이해가 완벽하게 되지 않으실 겁니다.

* 지금은 <mark style="color:blue;">'문자열 비교에는 == 대신 equals()를 사용해야 한다!'</mark> 만 기억하시면 됩니다.

* 아래 예제코드로 학습해 보겠습니다.

{% code lineNumbers="true" %}

```java
class Operator6_2 {
    public static void main(String[] args) {
        String s1 = "사랑";
        String s2 = "사랑";

        System.out.print("s1 == s2 = "); // true
        System.out.println(s1 == s2);
        System.out.println("s1.equals(s2) = " + s1.equals(s2)); // true

        // 하지만!
        String s3 = new String("사랑");
        System.out.print("s1 == s3 = "); // false
        System.out.println(s1 == s3);
        System.out.println("s1.equals(s3) = " + s1.equals(s3)); // true
    }
}
```

{% endcode %}

{% hint style="info" %}
Ref. Java의 정석 기초편 Chapter3(13, 14)

Ref. [비교 연산자 와 문자열 비교](https://www.youtube.com/watch?v=r1Ll0z9ndWo\&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp\&index=29)
{% endhint %}
