【发布时间】:2020-06-28 16:46:42
【问题描述】:
我在使用退货声明时遇到了问题。如果用户输入的详细信息与公寓对象匹配,我已经在返回 int 值的方法中有 2。
我的问题是,为什么我已经有 2 个时仍然收到缺少返回语句错误。我知道已经有人问过类似的问题,但我真的不明白它是如何工作的。
public static int search(){
int none = 55;
Scanner user = new Scanner(System.in);
System.out.println("Enter a bedroom number ");
int bedroom = user.nextInt();
System.out.println("Enter a bathroom number ");
int bathroom = user.nextInt();
System.out.println("Enter your rental budget");
int rentalAmount = user.nextInt();
for( int x = 0; x < object.length;++x){
if(object[x].getNumBathrooms() == bathroom && object[x].getNumBedrooms() == bedroom
&& (object[x].getRentalAmount() <= rentalAmount)){
return x;
}else{
return none;
}
}
}
【问题讨论】:
-
您应该从缩进代码开始。
-
在for循环之后添加一个return。如果 for 循环运行零次,您需要指定返回的内容。
-
for循环可能永远不会运行...因此,您的两个return语句都可能不会被命中。您还需要在函数底部添加return语句。另一种解决方法是在循环内设置一个变量为返回值,然后切换一个标志以退出循环,最后在返回值的函数底部只有一个返回。 -
为什么会有最终的for循环?它只会在返回之前循环一次(当 x 为 0 时,它将返回 if 语句或 else 语句)。它应该只替换为一个 if 语句。