2017-10-26 1 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'の同じ行に条件を置くべきです、このように読むのは奇妙です。特にelseの最初の行が条件の反対のように見えるとき – 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

これ。 'String'のように' Comparable'を拡張する非プリミティブなすべてのオブジェクトに適用されるので、この概念を理解するのに最善を尽くします。特に、データ構造を設計するときに、将来多くの頭痛を軽減します。 –

関連する問題