2017-10-26 2 views
-1

내가 입력 한 내용이 '예'이거나 '아니오'인 경우 계속 '작별'반응을 계속합니다. . 어떻게하면 응답을 바꿀 수 있을까요? .equals에만 만족하지 참조를 비교하는 반면내가 상관없이 응답을 계속 받겠다. 예 또는 아니오를 입력하면 어떻게 바뀌겠습니까?

import java.util.Scanner; 

public class SimpleQuiz1 { 
    public static void main(String[] args){ 

    Scanner userInputScanner = new Scanner (System.in); 

    System.out.println("Are you ready to take this NBA quiz?"); 
    String answer = userInputScanner.nextLine(); 

    if(
     answer == ("yes")){ 
    System.out.println("Then lets get started!!!"); 

    } else{ 
     answer = ("no"); 
     System.out.println("Goodbye, come again soon!"); 
     } 
    } 
    } 
+3

"yes"를 시도하십시오. equals (answer) –

+1

또한'if'와 같은 줄에 조건을 넣어야합니다. 이렇게 읽는 것은 이상합니다. 특히 다른 사람의 첫 번째 라인이 상태의 반대 인 것처럼 보일 때 – AxelH

답변

1

"=="로 사용 String.equals(Object obj)보다는 == 참조 평등 확인합니다.

Scanner userInputScanner = new Scanner(System.in); 
    System.out.println("Are you ready to take this NBA quiz?"); 
    String answer = userInputScanner.nextLine(); 
    if (answer.equals("yes")) { 
     System.out.println("Then lets get started!!!"); 

    } else { 

정상적으로 작동합니다.

+0

이것은. 'Comparable'을 확장하는'String'과 같은 원시적이 아닌 모든 객체에 적용되며, 특히 데이터 구조를 설계 할 때 미래에 많은 골칫거리를 줄 수 있기 때문에이 개념을 이해하는 것이 최선의 방법입니다. –