0

我已经制定了一个程序来根据月份来判断它是什么季节。但是,无论我输入什么,它都说是秋天。这是代码:

import java.util.Scanner;
public class SeasonChecker {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input = new Scanner(System.in);

    System.out.println("What month is it??");
    String month = input.nextLine();
    System.out.println(month);
    if (month == "december"||month == "January"||month=="February"){
        System.out.println("Then it is Winter?");
    }
    else if (month=="March"||month=="May"||month=="April"){
        System.out.println("Then it is Spring!!!");

    }
    else if (month=="June"||month=="July"||month=="August"){
        System.out.println("Then it is Summer!");

    }
    else {

        System.out.println("Then it is Autumn!");

    }
    input.close();
}

}

4

3 回答 3

5
month == "december"||month == "January"

比较时使用equals()方法Strings

例子:

   "december".equals(month) || "January".equals(month)

==检查引用是否相等(指向同一对象的两个引用都不是)。equals()检查对象的内容。

于 2013-07-01T18:30:23.403 回答
3

在Java中,对于字符串,您应该使用equals方法进行比较,而不是文字==比较。因此month.equals("January")Using==将比较内存引用并查看它们是否是对象的相同引用。==用于比较诸如 int 或 double 之类的文字

于 2013-07-01T18:30:46.850 回答
2

使用 equals 方法而不是 ==

if (month.equals("december")||month.equals("January")||month.equals("February")){

在 java == 中比较引用。但是equals方法比较的是String的值。

于 2013-07-01T18:31:29.943 回答