Java问题:如果/ Else

时间:2013-07-01 18:29:43

标签: java

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

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();
}

}

3 个答案:

答案 0 :(得分:5)

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

在比较equals()时使用Strings方法。

示例:

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

使用equals方法而不是==

if (month.equals("december")||month.equals("January")||month.equals("February")){
<=>在java ==中比较引用。但是equals方法比较String的值。