我正在编写关于编码的编码练习,这是我想要做的:
给定2个正的int值,返回10..20(含)范围内的较大值,如果两者都不在该范围内,则返回0。
max1020(11,19)→19 max1020(19,11)→19 max1020(11,9)→11 max1020(9,21)→0
我的代码:
public boolean IsInRange(int value)
{
return value >= 10 && value <= 20;
}
public int max1020(int a, int b) {
if (IsInRange(a) && IsInRange(b))
return a > b ? a : b;
else if (IsInRange(a))
return a;
else if (IsInRange(b))
return b;
}
我不明白为什么它不起作用,它给了我这个错误:
Error: public int max1020(int a, int b) {
^^^^^^^^^^^^^^^^^^^^^
This method must return a result of type int
Possible problem: the if-statement structure may theoretically
allow a run to reach the end of the method without calling return.
Consider adding a last line in the method return some_value;
so a value is always returned.
答案 0 :(得分:1)
我没有其他声明所以a和b的最后一个输入不起作用。 它应该是这样的:
public boolean IsInRange(int value) {
return value >= 10 && value <= 20;
}
public int max1020(int a, int b) {
if (IsInRange(a) && IsInRange(b))
return a > b ? a : b;
else if (IsInRange(a))
return a;
else if (IsInRange(b))
return b;
else
return 0;
}