【发布时间】:2021-12-02 12:09:03
【问题描述】:
据我所知,我理解这个错误。我知道在我的程序中存在不满足条件并且计算机不知道该怎么做的情况。话虽如此,我不确定如何在不破坏当前代码的情况下正确修复它。我在所有 if 语句的末尾添加了一个 return 0,这消除了错误,但在某些情况下,我当然不希望打印出 0。我也尝试将它放在最后的 else 语句中,但我仍然得到同样的错误。
赋值指令如下:“如果两个参数相差在1以内,则返回较小的数;否则,较大的参数减1,较小的参数加1,平衡结果。”
这是我所拥有的:
public static int balance (int x, int y) {
if(x == y) {
System.out.println("The values X and Y (" + x + " and " + y + ") are already balanced; They are equal to each other!");
}
else if(Math.abs(x-y) == 1) { //Checks to see if numbers are within 1 of each other (Math.abs because negative numbers don't matter in this case)
if(x > y) {
return y;
}
else return x;
}
else if(x > y) {
x = x - 1; //X is larger so we subtract
y = y + 1; //Y is smaller so we add
return balance(x,y); //Recursion happens
}
else if(x < y) {
y = y - 1; //Y is larger so we subtract
x = x + 1; //X is smaller so we add
return balance(x,y); //Recursion happens
}
}
那方面的计算和一切似乎完全按照说明要求进行。我似乎无法摆脱 “此方法必须返回 int 类型的结果”错误,而不会在控制台中显示不需要的随机值。
【问题讨论】: