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

时间:2010-03-19 16:51:20

标签: java boolean

我正在尝试编写一个方法,在调用时,将布尔变量更改为true,再次调用时,将同一个变量更改为false等。

例如: 通话方法 - > boolean = true - >通话方法 - > boolean = false - >通话方法 - > boolean = true

基本上,

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

我不知道如何实现这一点,因为每次调用方法时,布尔值都会变为true,然后再次变为false。

10 个答案:

答案 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;

Conditional (ternary) Operator.

答案 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;
&#13;
&#13;

答案 7 :(得分:3)

private boolean negate(boolean val) {
    return !val;
}

我认为这就是你所要求的?

答案 8 :(得分:2)

在Java中

当您将值设置为变量时,它将返回新值。所以

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() 这样的函数来调用它,将它设置为非自身并返回新值,找不到这个的任何缺点。