작성
·
425
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? -> 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? -> 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? -> 예
[질문 내용]
Switch 문에서 비교하는 값이 String이어도 되나요?
앞선 강의에서 String 외 다른 타입들은 ==
을 통해서 두 값이 같은지 비교하지만,
String은 .equals
를 통해 값을 비교해주신다고 하셨는데
switch문에서 case 별로 분기할 때, String 값이 들어가면 비교를 .equals
로 하도록 되는지가 궁금합니다.
수업을 듣다가 궁금해져서 아래와 같이 실습해보았는데
결과는 제대로 나왔습니다.
그런데.. String 비교는 ==
로 했을 때 제대로 나올 수도, 아닐 수도 있다고 하셨던 것 같아서 질문 남깁니다.
package condition;
public class Switch4 {
public static void main(String[] args) {
String subject = "math";
int class_number = switch (subject) {
case "art" -> 1;
case "math" -> 2;
case "science" -> 3;
default -> 0;
};
System.out.println("class_number = " + class_number); // 결과는 2로 출력
}
}
답변 1
1
안녕하세요. 지수님, 공식 서포터즈 y2gcoder입니다.
말씀하신 부분 때문인지는 몰라도 Switch 문에서 String을 사용할 수 있었던 것은 JDK 1.7 이후 부터입니다!
결론적으로는 내부적으로 equals 를 사용한다고 합니다 :)
감사합니다.
내부적으로 equals 를 사용하는군요! 감사합니다! 🙏🙏