gpt4 book ai didi

java - 缺少返回语句 : try-catch

转载 作者:行者123 更新时间:2023-12-02 11:17:35 25 4
gpt4 key购买 nike

try和catch block 中都有return语句,但仍然出现错误:缺少返回声明。顺便说一句,我正在使用 BlueJ。

public int[] getInput(){
boolean rightInput = false;
int[] nothing = {0,0};
while(rightInput == false){
try{
rightInput = true;
int[] XY = {0,0};
String coordinates;
System.out.println("Insert coordinates (x y) and press enter.");
coordinates = input.nextLine();
XY[1] = Character.getNumericValue(coordinates.charAt(0));
XY[0] = Character.getNumericValue(coordinates.charAt(2));
return XY;
}catch(StringIndexOutOfBoundsException se){
System.out.println(se);
System.out.println("Try Again with a space between x and y.");
rightInput = false;

return nothing;
}

}

}

最佳答案

在 while 循环之后必须有一个 return 语句,因为可能控制根本不会进入 while 循环体(当 rightInput 为 true)1 并且在这种情况下该方法必须返回一些内容。

while block 之后移动 return Nothing; 将会为您工作。

或者,您可以将 while 循环条件设置为 true

while (true) {
try {
...
return XY;

} catch(...) {
...
return nothing;
}

}
<小时/>

1 尽管在您的情况下 rightInput 始终为 false,但编译器不会推断出这一点(也许不能?),这是一件好事。想想如果有一个专门的逻辑来动态计算 rightInput 会发生什么。然后,它将导致编译错误,要求添加 return 语句,因为编译器现在无法判断 while 循环体是否会被执行。

关于java - 缺少返回语句 : try-catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50167163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com