Java初学者布尔问题

Sno*_*man 1 java types boolean

好吧,让我说我有boolean x = false.如果我有一个循环说明while (!x)这意味着x是非假(真)或x不是真(假)?

编辑:好的,我有点困惑,我想我得到了不同的答案.所以,如果我有

 int x=0;
 boolean add1=false;
 while (!add1){
        x=1;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,x的最终值是多少?

cod*_*ict 16

x=false;
while (!x)
Run Code Online (Sandbox Code Playgroud)

代替x我们的价值

while(!false)
Run Code Online (Sandbox Code Playgroud)

现在!是逻辑补码运算符,它反转了布尔值,所以我们得到了

while(true)  
Run Code Online (Sandbox Code Playgroud)

因此,我们继续循环,直到xfalse或至!xtrue.

请注意,变量的值可以在循环体中发生变化,从而导致循环中断.考虑一个典型的搜索程序,它使用一个名为found的布尔变量:

found = false;  // initialize found to false.
while(!found) { // keep looping till key is not found.
  ...
  if(key is found) {
    found = true; // key found...make found true. 
  }
}
Run Code Online (Sandbox Code Playgroud)

更新:

在您更新的问题add1中,false最初!add1true这样我们进入while循环并更改x1.由于价值add1并不在循环改变,有没有breakreturn你保持无限循环.