Java逻辑问题

标签 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;

提前致谢!

最佳答案

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

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

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

return -1 // Notfound
} 

添加 return -1 行,以便在找不到值时用作哨兵值。

关于Java逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351862/

相关文章:

java - 使用 spring jpa 逐行获取数据库

html - 为什么div在for循环完成之前不更新?

arrays - 循环总是返回最后一张图片

java - 具有扩展持久性上下文的有状态 EJB 来处理用户 session

java - 为什么 NTP 无法计算延迟时间

java - 使用 vector jswing 获取正确的表格标题

python - 赋值前引用的局部变量 'fight_run'

c++ - 如何在 Linux 和 C++ 上迭代 com 端口并打印到控制台?

winforms - 在无限循环中启动脚本并可能停止脚本

java - 使用嵌入式 Jetty 提供静态文件