Java String 범주를 사용하여 비교할 수 없는 이유 (==)

4988 단어 Java

String 클래스 비교


if문장 등에서 때때로 수치가 같은지 아닌지의 비교를 사용한다
예컨대
【Q1】
입력이 응답과 일치하는지 확인하는 프로그램
Q1.java
import java.util.Scanner;

class Q1 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        System.out.print("数を入力:");
        int n = stdIn.nextInt();

            if (n == 5) {
            System.out.print("あたり");
            } else {
            System.out.print("はずれ");
            }
    }
}

이 경우 int형 수치의 비교이기 때문에
==를 사용하여 비교할 수 있습니다.
그러면 문자열의 비교로 다음과 같은 상황을 살펴봅시다.
【Q2】
미스터리 프로그램
Q1.java
import java.util.Scanner;

class Q2 {
    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);

        System.out.print("豆腐の原料は?:");
        String n = stdIn.next();

            if (judge.equals("大豆")) {
            System.out.print("あたり");
            } else {
            System.out.print("はずれ");
            }
    }
}

비교는 ==이 아니라 equals를 사용합니다.
왜 equals일까요?
클래스 유형(참조)을 비교할 때는 컨텐트가 아닌 ==을 사용합니다.
데이터가 포함된 주소를 비교합니다.


좋은 웹페이지 즐겨찾기