我正在研究一种查找给定值的第一个实例并返回其位置的方法。它适用于某些情况,但如果我给它一个 [1,2,3] 数组,并将值设置为 2,它会返回 0,而不是 1。我也不知道为什么。这是代码:
int b = 0;
for(int a = 0; a < values.length; a++) {
if (values[a] == find){
b++;
}
}
return b-1;
提前致谢!
这是因为您要返回 b-1。事实上,如果你需要找到相同的实例并返回索引,你甚至不需要变量 b。您可以通过以下方式实现此目的:
for( int a = 0; a < values.length; a++) {
if (values[a] == find){
return a;
}
}
return -1 // Notfound
}
添加return -1
未找到值时的行,用作标记值。
尝试
for( int a = 0; a<values.length; a++) {
if (values[a] == find){
return a;
}
}
为什么不返回a
自己而不是做b-1
;
也许您也可以添加一个break
语句来停止迭代,因为您只需要第一个实例的位置
int b=0,result;
for( int a = 0; a<values.length; a++)
{
if (values[a] == find)
{
result=a;
break;
}
}
return result;