2016-12-21 10 views
-3

私は十字架と十字架のプロトタイプを作ろうとしています。私が苦労しているコードの部分はユーザー入力を受け取ります。入力がyの場合、gamestateは0に変更され、ゲームが再開されます。しかし、これは起こりません。なぜ誰かが説明できますか?Java:ステートメントが真に解決されないのはなぜですか?

Scanner s = new Scanner(System.in); 
       System.out.println("Would you like to play again?"); 
       if (s.next().toLowerCase() == "y") { 
        System.out.println("Okay"); 
        g.gamestate = 0; 
       } else { 
        g.gamestate = 4; 
       } 
+0

これは、equalsの代わりに '=='を使用しているためです。文字列を比較する方法 – XtremeBaumer

+0

'equals'メソッドを使用する' == 'を使用して' String'を比較しません – Mihir

+0

ありがとう、私は前に==の代わりにequalsを使用していると言われていませんでした。 「比較文字列」と呼ばれています。 OPごとに –

答えて

1

あなたの文字列オブジェクトのリンクを比較するs.next().toLowerCase().equals("y") 演算子「==」を使用しようとすると、この方法は、値を比較する「等しいです」。

0

はい、誰かが解説したように、の代わりに==を使用する必要があります。

Scanner s = new Scanner(System.in); 
    System.out.println("Would you like to play again?"); 
    if (s.next().equalsIgnoreCase("y")) { 
     System.out.println("Okay"); 
     //g.gamestate = 0; 
    } else { 
     System.out.println("No"); 
    // g.gamestate = 4; 
    } 
+1

、彼は小文字でyが必要です。したがって、等号の必要性は、等号が必要です。 – Chinmay

+0

はい、あなたは正しいです! –

関連する問題