程序不会返回String

时间:2015-10-12 22:17:35

标签: java string return

所以我在编程课的介绍中遇到了一个问题。我做了一些研究,以实现这个问题的方法,我能够编译没有错误,但其中一个规定是我必须返回一个字符串。这是我把头伸进砖墙的地方。我已经尝试了一些方法来解决这个问题,但我希望有人能在这里发现我一直把头发拉过来的问题。

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 个答案:

答案 0 :(得分:5)

这样的东西?

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

答案 1 :(得分:4)

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

其次,查看main方法的方法签名。它明确指出main具有返回类型void。这意味着,这种方法无法返回任何内容。您可以使用System.exit()提供退出代码,但这仅限于整数返回代码。

我强烈怀疑你真正追求的是将结果打印到控制台的能力。也就是说,

System.out.println(season(5,12));

答案 2 :(得分:1)

如果你想从你的主人那里归还任何东西,那是不可能的。 但是,如果您想显示结果,System.out.println就是您的方法