0

だから私の問題は、ひどいコーディングスキルをリフレッシュするために非常に単純なプログラムを作成しようとしているのですが、理解できない問題に遭遇しました. プログラムは、「はい」という答えを受け取り、「yay」と出力して、それが機能したかどうかを確認することになっていますが、機能しません。だから私は何が間違っているのだろうかと思っています。

public class main {
    /**
     * @param args
     */
    public static void main(String[] args) {
        int playerTroops, computerTroops;
        String teamName, computerName = "Orcs", answer;
        Scanner listener = new Scanner(System.in);
        System.out
                .println("Welcome to the Battle Grounds, where you are responsible for winning a war \nAre you ready? \nYes or No");
        answer = listener.nextLine();

        if (answer == "Yes")
            System.out.println("Yayy");
        else
            System.out.println("Why");
    }
}
4

1 に答える 1

4

For Java String comparison, you must use the .equals operator:

if(answer.equals("Yes"))

If you want to ignore case,

if(answer.equalsIgnoreCase("Yes"))

In Java, the operator == checks for reference equality. Under normal circumstances, equal strings don't automatically have same reference (I.E: They are different objects. This distinction is utterly important in Java).

于 2013-02-27T02:11:14.710 に答える