有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java程序不会返回字符串

所以我在编程入门课上被分配了一个问题。我对解决这个问题的方法做了一些研究,我能够编译没有错误,但是其中一个规定是我必须返回一个字符串。这就是我的头撞到砖墙的地方。我已经尝试了一些方法来解决这个问题,但我希望这里的人能发现我一直在讨论的问题

public class TellSeason {

    public static void main(String[] args) {
        season(5 , 12);
    }

    public static String season(int month , int day) {

        if ((month == 9 && day >=16)
            || month == 10
            || month == 11
            || (month == 12 && day <=15)) {
            return ("Fall");
        }
        else if ((month == 12 && day >=16)
                 || month == 1
                 || month == 2
                 ||(month == 3 && day <=15)) {
            return ("Winter");
        }
        else if ((month == 3 && day >=16)
                 || month == 4
                 || month == 5
                 ||(month == 6 && day <=15)) {
            return ("Spring");
        }
        else {
            return("Summer");
        }
    }
}

共 (3) 个答案

  1. # 1 楼答案

    如果你想从你的主要客户那里退货,那是不可能的。 但是如果您想显示结果,System.out.println是您的方法

  2. # 2 楼答案

    有两件事,首先,你没有用你的方法做任何事情。基本上,您只需在主方法中调用季节,而对结果不做任何处理

    第二,查看主方法的方法签名。它明确声明main具有返回类型void。这意味着,此方法不能返回任何内容。您可以使用System.exit()提供退出代码,但是,这仅限于整数返回代码

    我强烈怀疑,您真正想要的是能够将结果打印到控制台。就是

    System.out.println(season(5,12));
    
  3. # 3 楼答案

    像这样的

    public static void main(String[] args){
        System.out.println(season(5 , 12));
    }
    

    还有一个提示-您可以一起比较月份和日期

    int idx = month * 100 + day;
    if (idx <= 315 || idx >= 1216)
        return ("Winter");
    
    if (idx >= 916) 
        return ("Fall");
    
    if (idx >= 616) 
        return("Summer");
    
    //if (idx >= 316) 
    return ("Spring");