Java 我不知道';我不理解while循环中的布尔值

Java 我不知道';我不理解while循环中的布尔值,java,Java,我不明白下面的布尔值是如何工作的 int searchedValue = 100; int pos = 0; boolean found = false; while (pos < values.length && !found) { if (values[pos] == searchedValue) { found = true; } else

我不明白下面的布尔值是如何工作的

    int searchedValue = 100;  int pos = 0;
    boolean found = false;
    while (pos < values.length && !found)
    {
       if (values[pos] == searchedValue) 
       { 
          found = true; 
       }
       else 
       { 
          pos++; 
       }
    }
    if (found) 
    { 
    System.out.println(“Found at position: ” + pos); 
    }
    else { System.out.println(“Not found”); 
    }
int searchedValue=100;int pos=0;
布尔值=false;
while(pos
我不明白的是:

  • boolean found=false,是将boolean初始设置为false,对吗?然后在while循环条件下&!发现:表示布尔值未发现为假??这意味着while循环将在find=true时保持循环???对我来说完全没有意义
  • 然后在while循环中,如果value[pos]==searchedValue,则设置found=true???但是,当循环条件!found=false,如果找到值,它将继续循环,如果找不到值,它将继续循环???再说一次,对我来说完全没有意义
  • 当然,正如你在最后看到的,如果(发现)条件也让我感到困惑,那么find设置为false,那么if(发现)意味着if(发现=false,这意味着未发现),然后打印出find值
  • 我的意思是,整件布尔运算的事情让我困惑……有人能给我解释一下吗?请~~~

    有人能理解我的问题吗?我不断得到答案,说我的问题是重复别人的问题,已经得到了回答……我查看了他们的帖子,没有!这些答案并没有回答我的问题

    那些帖子上的答案是!found与found相反,如果found最初设置为false,则!发现等于发现=真…我明白!但你们没看到这正是让我困惑的地方

    !!find与find的初始值相反,在这段代码中,find=false是初始值,然后在while循环条件中!找到意味着找到=真。这意味着while循环仅在find=true时循环???为什么

    在while循环中,若发现的条件设置为true,则继续循环…为什么??如果找到值,不应该将found=false设置为跳出循环

    那么在最后如果(找到),打印,为什么???found=false,如果(false),打印找到的值就没有意义了

    这段代码在教科书中,作者完全没有解释它,只是说应该这样编码,我只是不明白为什么…理解我问题的人请给我解释一下


    我怎样才能去掉问题上的重复标记?请不要重复我的问题,因为ppl只是停止回答我。我查看了所有ppl标记为重复的帖子,但答案没有回答我的问题……你知道吗?我只是想把我自己的问题复制到同一个网站上,因为有些ppl只是标记我盲目复制,我因此没有得到我的答案。

    A
    boolean
    可以是
    true
    false

    已找到
    正在用作控制标志。它最初设置为
    false
    ,因为您没有找到任何内容。它被用在
    while
    循环头部的表达式中,这样循环只有在
    found
    false
    时才会执行,也就是说,一旦你找到了什么,循环就会终止<当匹配发生(在循环中)时,code>found
    设置为
    true
    ,以使其发生。循环完成后,输出基于
    found
    的值

    while
    循环将在表达式

    pos < values.length && !found
    
    pos
    真的
    。假设您正在使用and(
    &&
    ),则表达式的两个部分都必须是
    true

    如果我们看一下
    !当
    found
    false
    时,此子表达式为
    true
    。这是因为
    运算符对其应用于的表达式的值求反。因此,如果
    找到
    !找到的
    。同样,如果找到的
    ,则
    !找到的
    。因此,当
    found
    false
    时,循环将继续执行

    打印输出还取决于找到的
    的值。
    if
    语句的表达式非常类似于
    while
    循环,即发生的情况取决于表达式是
    true
    还是
    false


    在您的例子中,
    if(found)
    是所有表达式中最简单的,即is
    found
    true
    false
    。如果(found==true)
    有帮助,您可以将其视为
    if(found==true)
    。Java的习惯用法是省略
    ==true

    为什么您认为条件测试
    ==false
    ?他们没有。“…这意味着while循环将在find=true时继续循环?”“不,这意味着当条件”!“发现”是真的,只有当“发现”是假的时候才是真的。好吧,如果我知道如何编码和理解它们,那么我就不会读java初学者课本,在这里问一些看似愚蠢的问题,不是吗?但为什么条件是真的呢!建立找到意味着找不到,对吗?因为found=false,单独查找意味着找不到,对吗?那么!找到意味着找不到,换句话说!找到意味着找到,意味着找到=真……对吗?这让我很困惑……你能给我解释一下吗?@user3390471我已经更新了我的答案来解决你评论中的问题。是的,谢谢你更新了你的答案来回答我。啊哈,这是一个非常令人困惑的条件作用,如果你不给我解释得这么好,我永远也弄不明白……还有一个问题,在if条件的末尾,
    if(found)
    ,即
    found=true或false
    ,以及条件为什么和如何工作???请给我解释一下……我已经在啃这段代码三天了,连sl都不会