我试图编写一个方法,在调用时,将布尔变量更改为true,并在再次调用时,将相同的变量更改为false等.
例如:call method - > boolean = true - > call method - > boolean = false - > call method - > boolean = true
基本上,
if (a = false) { a = true; }
if (a = true) { a = false; }
Run Code Online (Sandbox Code Playgroud)
我不知道如何实现这一点,因为每次调用方法时,布尔值都会变为true,然后再次变为false.
ILM*_*tan 116
value ^= true;
Run Code Online (Sandbox Code Playgroud)
这是值xor-equals true,它将每次翻转它,并且没有任何分支或临时变量.
Joe*_*asq 47
不看它,把它设置为不是它自己.我不知道如何用Java编写代码,但在Objective-C中我会说
booleanVariable = !booleanVariable;
Run Code Online (Sandbox Code Playgroud)
这翻转了变量.
bob*_*vil 17
假设您的代码是实际代码,那么您有两个问题:
1)你的if语句必须是'==',而不是'='.你想做比较,而不是分配.
2)第二个if应该是'else if'.否则,当它为假时,您将其设置为true,然后将评估第二个if,并且您将其设置为false,如您所述
if (a == false) {
a = true;
} else if (a == true) {
a = false;
}
Run Code Online (Sandbox Code Playgroud)
另一件让它变得更简单的事就是"!" 运营商:
a = !a;
Run Code Online (Sandbox Code Playgroud)
将切换a的值.
var logged_in = false;
logged_in = !logged_in;
Run Code Online (Sandbox Code Playgroud)
一个小例子:
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);
}Run Code Online (Sandbox Code Playgroud)
.test{
color: red;
font-size: 16px;
width: 100000px
}
.test_hidde{
color: #000;
font-size: 26px;
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)