-2

ええと、私は本当にそれを解決しようとしました(そしてグーグルで調べました)が、できませんでした。

そして、私の英語とそのばかげたタイトルで申し訳ありません(これは頭に浮かんだ最高のものです:)

System.out.println("AM I A GENIUS?");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
 if (s == "yes"){
        System.out.println("^_^");
}
 else{
    System.out.println("I am not a genius(");
}

console: AM IA GENIUS?

はい

私は天才ではありません(

4

3 に答える 3

0

if (s == "yes") --->> 決して

代わりに使用

if (s.equals("yes"))

EDIT:説明のためだけに:最初のステートメントは、オブジェクト s とオブジェクト「yes」の参照が同じかどうかを制御するブール演算子です。

2 つ目は、String 変数の実際の内容を比較します。

したがって、一般に、非プリミティブ型を使用する場合はブール比較を使用しないでください。

于 2013-11-02T21:59:52.523 に答える
0

実際、2 つの String オブジェクトではなく参照を比較しています。

あなたがすべきことは次のとおりです。

System.out.println("AM I A GENIUS?");
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
 if (s.equals("yes")){
        System.out.println("^_^");
}
 else{
    System.out.println("I am not a genius(");
}

クラス String の equals メソッドは、 Strings と "yes" を文字単位で比較するようになりました。

于 2013-11-02T22:00:19.887 に答える