【发布时间】:2013-11-08 00:28:21
【问题描述】:
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;
}
}
我这里有这个 java 代码的 sn-p,它一直告诉我它没有返回应有的双精度值,这让我很困惑为什么。我唯一能想到的是“creditHours”是整数,所以我将它们转换为双打,这没有任何区别。我应该在这里使用 case 语句而不是 else if 吗?
编辑:非常感谢您的快速响应。老实说,我的意思是,看着我犯的愚蠢错误我不知道你们中有一半人如何回答这些问题,我敢肯定,我一遍又一遍地回答,仍然有耐心让他们发人深省的答案.我一听到野马在他的帖子中说“默认”,我就知道出了什么问题。 再次感谢这真是一个很棒的社区。p>
【问题讨论】:
-
如果没有个
if子句满足会怎样? -
如果
isGraduating总是'y' 或'n',最后的else if应该是一个简单的else。如果isGraduating可以有任何其他值,您需要说明在这种情况下该怎么做。 -
@user2967104 如果解决了您的问题,请接受 broncoAbierto 的回答。
标签: java if-statement methods