每次调用方法时如何在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; }
我想这就是你要求的?