-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");

我的问题是即使我输入“退出”这个词,我的 Java 代码也不会终止。

这是对这个问题的跟进。

4

3 回答 3

4

使用equals等值方法。

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

在 Java 中,使用.equals()而不是==比较字符串:

将此字符串与指定对象进行比较。当且仅当参数不为 null 并且是表示与此对象相同的字符序列的 String 对象时,结果才为真。

如果你使用==(or !=),你只是测试引用相等,而不是值相等。

于 2012-10-15T07:35:25.213 回答
0

您应该在 Java 中使用.equals()代替==或代替!=String。还有一点,不要使用!month.equals("Quit"),可能会导致 NullPointerException。

作为经验丰富的开发人员,他们总是这样写:!"Quit".equals(month)

于 2012-10-15T07:39:43.177 回答