【发布时间】:2021-05-28 02:36:20
【问题描述】:
我有这个代码;
public double equate(String type, double num1, double num2) {
if (type.equals("Addition")) {
return (num1 + num2);
} else if (type.equals("Subtraction")) {
return (num1 - num2);
} else if (type.equals("Multiplication")) {
return (num1 * num2);
} else if (type.equals("Division")) {
return (num1 / num2);
}
}
我知道 return 语句应该在 if 语句之外,因为它不是块不起作用。我正在尝试使用一种在调用该方法时会根据用户偏好提供不同输出的方法。
感谢任何帮助。
【问题讨论】:
-
"我知道 return 语句应该在 if 语句之外" 这不是硬性规定
-
如果你只有四个选择,把最后一个
else if (type.equals("Division"))改成else。然后就可以了。 -
哇,好的。谢谢,现在可以使用了。 @AKSingh
-
@JST 您还可以添加
else { throw new IllegalArgumentException("Uknown type: " + type); },这将修复您丢失的返回,并且当传递的类型不是您期望的 4 个字符串之一时,您的方法会抛出错误/异常。跨度> -
如果您只是将最后一个
else if更改为else,任何不是“加法”、“减法”或“乘法”的类型都将被视为一个除法。所以equate("PopeyeTheSailor", 2.0, 1.0);将被视为与equate("Division", 2.0, 1.0);相同。如果这是您想要的行为,这当然取决于您
标签: java if-statement methods return