Java calc()类型方法中的Else if语句返回错误的值

Java calc()类型方法中的Else if语句返回错误的值,java,if-statement,methods,Java,If Statement,Methods,我这里有一段java代码,它一直告诉我,它并没有像预期的那样返回一个double,这让我很困惑,为什么。我能想到的唯一一件事就是“积分时间”是整数,所以我把它们换成了双打,这没有什么区别。我是否应该在这里使用案例陈述,而不是在其他情况下使用 编辑:非常感谢您的快速回复。老实说,我的意思是,看着我犯下的愚蠢错误,我不知道你们中的一半人是如何回答这些问题的,我相信你们会一遍又一遍地回答,而且仍然有耐心做出发人深省的回答。我一听到布朗科在他的帖子里说“违约”,我就清楚地知道出了什么问题。 再次感谢这真

我这里有一段java代码,它一直告诉我,它并没有像预期的那样返回一个double,这让我很困惑,为什么。我能想到的唯一一件事就是“积分时间”是整数,所以我把它们换成了双打,这没有什么区别。我是否应该在这里使用案例陈述,而不是在其他情况下使用

编辑:非常感谢您的快速回复。老实说,我的意思是,看着我犯下的愚蠢错误,我不知道你们中的一半人是如何回答这些问题的,我相信你们会一遍又一遍地回答,而且仍然有耐心做出发人深省的回答。我一听到布朗科在他的帖子里说“违约”,我就清楚地知道出了什么问题。
再次感谢这真是一个很棒的社区。

编译器看到的是在三种情况下该做什么,但它无法知道默认情况下该做什么。如果
if
条件均未返回true,该怎么办


为了让程序正常运行,您应该在默认情况下添加一条return语句,或者将最后一条
else语句设置为
else
您可以在返回前插入一条调试行,以便查看实际值


在java中,您应该始终返回某种类型的值,在这段代码中,所有的情况都可能是false,这样您就不会返回一个double。

如果这些
子句都不满足,会发生什么情况?如果
IsGrading
始终是“y”或“n”,那么最后的
else if
应该是一个简单的
else
。如果
正在毕业
可以有任何其他值,您需要说明在这种情况下该怎么办。@user2967104如果broncoAbierto的答案解决了您的问题,请接受它。
public double calcTuition()
    {
        if (isGraduating == 'y')
        {
            return (Math.round((creditHours * 90.00 * 100.0))) / 100.0;
        }
        else if (isGraduating == 'n' && creditHours > 21)
        {
            return (Math.round(1000.0 + (creditHours - 21) * 90.00 * 100.0)) /100.0;
        }
        else if (isGraduating == 'n')
        {
            return (Math.round((1000.0 * 100.0))) /100.0;
        }

    }