Java逻辑问题

she*_*ply 2 java loops

我正在研究一种方法,它找到给定值的第一个实例并返回其位置.它适用于某些情况,但如果我给它一个[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;
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Sed*_*nus 6

因为你回来了b-1.实际上,如果你需要找到相同的实例并返回索引,你甚至不需要变量b.您可以通过以下方式实现此目的:

for( int a = 0; a < values.length; a++) {

if (values[a] == find){
   return a;
 }
}

return -1 // Notfound
} 
Run Code Online (Sandbox Code Playgroud)

添加return -1未找到值的行,以用作标记值.

  • 一个带有逻辑@Sednus的示例[程序](http://mathbits.com/MathBits/Java/arrays/Searcing.htm)已经提到过了. (2认同)