每次调用方法时如何在true和false之间切换布尔variables?

我想写一个方法,当被调用时,将布尔variables更改为true,并且当再次调用时,将相同的variables更改为false等。

例如:call method – > boolean = true – > call method – > boolean = false – > call method – > boolean = true

所以基本上,

if (a = false) { a = true; } if (a = true) { a = false; } 

我不知道如何做到这一点,因为每次我调用方法,布尔值更改为true,然后再次为false。

 value ^= true; 

这就是xor-equals true的值,每次都会翻转,没有任何分支或临时variables。

不看它,把它设置为不是自己。 我不知道如何在Java中编写它,但是在Objective-C中,我会说

 booleanVariable = !booleanVariable; 

这翻转了variables。

每次调用时都要切换

 public class A public A() { this.boolValue = false; } public void toggle() { this.boolValue = !this.boolValue; } } 

假设你上面的代码是实际的代码,你有两个问题:

1)你的if语句需要是'==',而不是'='。 你想做比较,而不是分配。

2)第二个if应该是'else if'。 否则,当它是假的时候,你将它设置为true,然后第二个if将被评估,并且你将把它设置回false,正如你所描述的

 if (a == false) { a = true; } else if (a == true) { a = false; } 

另一件事会让它变得更简单的是'!' 运营商:

 a = !a; 

将切换一个值。

我用boolean = !boolean;

 value = (value) ? false : true; 

有条件(三元)运算符。

 var logged_in = false; logged_in = !logged_in; 

一个小例子:

 var logged_in = false; $("#enable").click(function() { logged_in = !logged_in; checkLogin(); }); function checkLogin(){ if (logged_in) $("#id_test").removeClass("test").addClass("test_hidde"); else $("#id_test").removeClass("test_hidde").addClass("test"); $("#id_test").text($("#id_test").text()+', '+logged_in); } 
 .test{ color: red; font-size: 16px; width: 100000px } .test_hidde{ color: #000; font-size: 26px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="test" id="id_test">Some Content...</div> <div style="display: none" id="id_test">Some Other Content...</div> <div> <button id="enable">Edit</button> </div> 
 private boolean negate(boolean val) { return !val; } 

我想这就是你要求的?