我正在尝试编写一个方法,在调用时,将布尔变量更改为true,再次调用时,将同一个变量更改为false等。
例如: 通话方法 - > boolean = true - >通话方法 - > boolean = false - >通话方法 - > boolean = true
基本上,
if (a = false) { a = true; }
if (a = true) { a = false; }
我不知道如何实现这一点,因为每次调用方法时,布尔值都会变为true,然后再次变为false。
答案 0 :(得分:115)
value ^= true;
这是值xor-equals为true,每次都会翻转它,并且没有任何分支或临时变量。
答案 1 :(得分:47)
不看它,把它设置为不是它自己。我不知道如何用Java编写代码,但在Objective-C中我会说
booleanVariable = !booleanVariable;
这会翻转变量。
答案 2 :(得分:29)
每次调用时都要切换
this.boolValue = !this.boolValue;
答案 3 :(得分:17)
假设您的上述代码是实际代码,您有两个问题:
1)你的if语句必须是'==',而不是'='。你想做比较,而不是分配。
2)第二个if应该是'else if'。否则当它为假时,你将它设置为true,然后第二个if将被评估,并且你将它设置为false,如你所描述的那样
if (a == false) {
a = true;
} else if (a == true) {
a = false;
}
另一件让它更简单的事情是'!'操作者:
a = !a;
将切换a。
的值答案 4 :(得分:15)
我使用boolean = !boolean;
答案 5 :(得分:10)
value = (value) ? false : true;
答案 6 :(得分:7)
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>
&#13;
答案 7 :(得分:3)
private boolean negate(boolean val) {
return !val;
}
我认为这就是你所要求的?
答案 8 :(得分:2)
当您将值设置为变量时,它将返回新值。所以
private boolean getValue()
{
return value = !value;
}
答案 9 :(得分:0)
这里有一些方法可以做到,选择您喜欢的一种:
//set a bool variable to true
bool myBool = true;
print (myBool); //:true
//set 'myBool' to not itself
myBool = !myBool;
print (myBool); //:false
//ternary myBool: if it's true return false, if it's false return true
myBool = myBool ? false : true;
print (myBool); //:true
//ternary !myBool, same as last one but inverted (because why not)
myBool = !myBool ? true : false;
print (myBool); //:false
//set myBool to not itself and true
myBool = !(myBool && true)
print (myBool); //:true
抛开玩笑,我一直想要一个像 myBool.switch()
这样的函数来调用它,将它设置为非自身并返回新值,找不到这个的任何缺点。