가능한 중복 사용 방법 :
How do I compare strings in Java?자바 : switch 문을
내가 자바의 switch 문을 사용하는 방법을 이해하는 데 문제가 있어요. case 문 중 하나에서 메서드를 실행 한 후에도 여전히 기본 문으로 이동하여 실행합니다. 코드는 다음과 같습니다.
Scanner scanner = new Scanner(System.in);
String option = null;
while (option != "5") {
ShowMenu();
option = scanner.nextLine();
switch (option) {
case "1": ViewAllProducts(); break;
case "2": ViewProductDetails(scanner); break;
case "3": DeleteProduct(scanner); break;
case "4": AddProduct(scanner); break;
case "5": break;
default: System.out.println("Invalid option. Please try again."); break;
}
}
위의 코드는 기본 방법입니다. 예를 들어 사례 "4"를 실행 한 후 "잘못된 옵션"을 인쇄합니다.
'while (! "5". equals (option)) {}' – adatapost
와우 여야합니다. 모두들 고마워요 .. C# 코더가되어 주셔서, 이것은 매우 이상합니다. C#에서는이 문제가 없습니다. 위의 내용은 전혀 문제가되지 않습니다. 매우 흥미로운 LOL. – Matt
문제는 참조 평등 대 값의 동일성이며 C#에도이 문제가 있지만 다행스럽게도 C#의 String은 '=='연산자를 오버로드합니다. – Premraj