java - if 语句中 boolean 值的使用

标签 java if-statement boolean

public static int search(int[] a, int target)
{
    int i=0;
    boolean found = false;
    while((i<a.length) &&  ! found)
    {
        if (a[i] == target)
        {
        found = true;   
        }
        else i++;
    }
    if (found) return i;
    else return -1;
}

我不明白 if 语句部分。所以我在脑海中阅读它的方式被发现被设置为 false。如果没有找到...所以如果不是假(因为找到=假),就做任何事情。所以基本上我把它理解为双重否定,看看是否(正确)是无论如何。但这没有意义。我知道它不是无限循环并且运行良好,但我不明白逻辑,它一定不是双重否定。谢谢!

编辑: 所以我知道我们可以直接返回,更容易,是的,我同意。我只是在循环中使用 boolean 值的逻辑时遇到问题,而不是“!”符号。

基本上,如果我写了这个,我会说(忽略其他一切)

found = true//found 为 true while (!found)//虽然不正确 继续到下一个索引//继​​续直到....实际上我现在很困惑,因为要打破循环,我们将继续直到找到为假,这在逻辑上是向后的

编辑:谢谢大家的评论!这一切都帮助我理解了它!

最佳答案

public static int search(int[] a, int target)
{
   for (int i = 0; i < a.length; i++){
        if (a[i] == target) return a[i]; // or i if you want to get ingex of searched element
   }
   return -1;
}

关于java - if 语句中 boolean 值的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47114795/

相关文章:

java - 无法在 channel “null” 上发布通知

java - Gson:java.text.ParseException:无法解析的日期: "2018-04-09T09:00:00+02:00"

java - 为什么我无法将 TextArea 中的文本与字符串进行比较?

c++ - 哪个更快 : if (bool) or if(int)?

java - 由证书签名的 Soap 请求。 WS-安全

java - 第一次调用后视角为空

c - while 中的 if 语句依赖于 while 依赖的同一个变量

windows - 在 IF 语句中使用 OR WinXP 批处理脚本

flutter - 返回 Future<Dynamic> 而不是 Bool

c++ - boolean 值的大小是多少? 1 位还是 1 字节?