【发布时间】:2014-11-12 23:20:33
【问题描述】:
所以,我需要return 在array 中的一个位置,如果没有找到目标编号,我需要一个-1。问题是当我在 if else 语句中使用 return 时,我收到一个错误,因为程序不会进入 if 循环。这是我当前的代码:
public int search(int num1)
{
for(int i=0;i<scores.length;i++)
{
if(scores[i]==num1)
{
return i;
}
else
{
return -1;
}
}
}
这一直给我一个错误,说没有返回语句。有没有办法在没有错误的情况下执行此逻辑? 谢谢大家
【问题讨论】:
-
删除
else块。将return -1;放在for块的末尾之后。 -
想想你的代码做了什么。它检查元素 0,无论如何,立即返回。这可能不是你想要的。编译器正在查看您的代码并运行“好吧,如果
scores.length为零,则绕过 for 循环。所以...... for 循环之后的 return 语句在哪里?” -
仅供参考,错误的原因是如果
scores.length为0,则循环永远不会执行并且方法永远不会返回。 (实际上,Java 编译器似乎假定带有终止条件的 anyfor循环可以执行零次。)