-1

これがC#での私のコードです:

        string month;
        do
        {
            Console.WriteLine("put month");

            month = Console.ReadLine();
            switch (month)
            {
                case "1":
                    Console.WriteLine("dsad");
                    Console.ReadLine();
                    Console.WriteLine("\neheheh!");
                    Console.WriteLine("\nhihihihi");
                    break;

            }
        }while(month!="Quit");

これはJavaです:

    Console C = System.console();

    String month;
    int year;

    do {
        month = C.readLine("\nPlease put a valid month: \n");
        switch (month) {
            case "1":

                C.readLine("\nPlease put a valid year: \n");
                System.out.println("\nThe month is January!");
                System.out.println("\nJanuary has 31 days!");
                break; 
        }
    } while (month != "Quit");

私の問題は、「Quit」という単語を入力してもJavaのコードが終了しないことです。

これは、この質問のフォローアップです。

4

3 に答える 3

4

equalsイコライジングのメソッドを使用します。

do{
}while (!month.equals("Quit"));
于 2012-10-15T07:35:18.290 に答える
3

Java では、文字列を比較する.equals()代わりに使用します。==

この文字列を指定されたオブジェクトと比較します。引数が null ではなく、このオブジェクトと同じ文字シーケンスを表す String オブジェクトである場合にのみ、結果は true になります。

==(または)を使用する場合は!=、値の等価性ではなく、参照の等価性をテストするだけです。

于 2012-10-15T07:35:25.213 に答える
0

Java の文字列の代わりに、または.equals()代わりに使用する必要があります。もう 1 点、使用しないでください。NullPointerException が発生する可能性があります。==!=!month.equals("Quit")

経験豊富な開発者として、彼らは常に次のように書いています。!"Quit".equals(month)

于 2012-10-15T07:39:43.177 に答える