布尔操作技巧

dim*_*ime 7 java boolean

我之前在代码中看过这个,但是忘了它.基本上它切换一个布尔变量.如果是真的,它将设置为false,反之亦然.但遗憾的是忘记了语法.

它基本上是一个单一的班轮:

if (myVar) {  
    myVar = false;  
} else {  
    myVar = true;  
}  
Run Code Online (Sandbox Code Playgroud)

它是这样的,但不知道它的名称或正确的语法:

myVar = myVar : false ? true;
Run Code Online (Sandbox Code Playgroud)

Ale*_*erg 70

怎么样

myVar = !myVar
Run Code Online (Sandbox Code Playgroud)

  • 这是精神错乱,+ 40的答案甚至没有提到条件运算符的一半问题? (9认同)
  • +0:因为这个答案只提供了另一种选择,所以根本不回答这个问题. (3认同)

nos*_*nos 27

myVar = myVar ? false : true;正在使用条件运算符.

你可以这样做

myVar = !myVar;
Run Code Online (Sandbox Code Playgroud)

  • 你有:和?向后.这是条件?true branch:false branch`. (2认同)

Mar*_*ers 17

另一种选择是XOR:

myVar ^= true;
Run Code Online (Sandbox Code Playgroud)

值得注意的是,只有任务的LHS发生变化; 右边是常量,将切换任何布尔变量.然而,否定的更多是自我记录的IMO.

  • @Lie:OP询问了Java.这对Java布尔值无效. (3认同)

Guf*_*ffa 5

你在想的是条件运算符:

myVar = myVvar ? false : true;
Run Code Online (Sandbox Code Playgroud)

(正如你所看到的,很多人称之为"三元运算符",但这只意味着它是一个有三个操作数的运算符.实际上,只有一个运算符在这种语言中有三个操作数,但它仍然说没有关于运营商做什么.)

使用否定运算符当然更容易:

myVar = !myVar;
Run Code Online (Sandbox Code Playgroud)