我不明白以下布尔值是如何工作的......
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”);
}
以下是我不明白的事情:
我的意思是整个布尔的东西让我感到困惑....有人可以向我解释一下吗?请~~~ ???
任何人都可以理解我的问题吗?我不断得到答案,说我的问题是重复给别人的问题而且已经得到了回答......我检查了他们的帖子,没有!那些答案没有回答我的问题!
这些帖子上的答案说!发现与发现相反,如果发现最初设置为假,那么!发现等于找到=真......我明白了!但是,你们不觉得这就是让我感到困惑的事情!!!
!found与找到的初始值相反,在此代码中,found = false是初始值,然后在while循环条件中!found意味着找到= true。这意味着while循环只有循环如果找到=真???为什么???
并且在while循环中,如果发现条件设置为true,则保持循环...为什么?如果找到值,则不应设置found = false来跳出循环而不是
然后在最后如果(找到),打印,为什么??? found = false,如果(false),打印发现值没有意义....
这段代码在教科书中,作者完全没有解释,只是说应该是这样的代码,我只是不明白为什么......有人理解我的问题请请给我解释!!!
如何从我的问题中删除重复标记?请不要将我的问题标记为重复,因为ppl只是停止回答我。我检查了所有帖子ppl标记我重复,答案没有回答我的问题....你知道吗?我只是将我自己的问题复制到同一个网站,因为有些人只是盲目地将我复制,因此我没有得到答案。
答案 0 :(得分:3)
boolean
可以是true
或false
。
found
被用作控制标志。它最初设置为false
,因为您还没有找到任何内容。它在while
循环的头部的表达式中使用,以便仅在found
为false
时才执行循环,即。一旦你找到了什么,循环就会终止。当匹配发生时(在循环内)found
设置为true
以实现此目的。循环完成后,输出基于found
的值。
只要表达式
,while
循环将继续执行
pos < values.length && !found
是true
。鉴于您正在使用and(&&
),表达式的两个部分必须为true
。
如果我们仔细查看!found
,则当true
为found
时,此子表达式为false
。这是因为!
运算符否定了它应用于的表达式的值。因此,如果found
为false
,则!found
为true
。同样,如果found
为true
,则!found
为false
。因此,当found
为false
时,循环继续执行。
打印输出还取决于found
的值。 if
语句的表达式与while
循环很相似,即。会发生什么取决于表达式是true
还是false
。
在您的情况下,if (found)
是所有表达式中最简单的,即。是found
true
或false
。如果有帮助,您可以将其视为if (found == true)
。 Java的习语是省略== true
。