web-dev-qa-db-ja.com

メソッドが呼び出されるたびにブール変数をtrueとfalseの間で切り替えるにはどうすればよいですか?

呼び出されたときにブール変数をtrueに変更し、再度呼び出されたときに同じ変数をfalseに変更するメソッドを作成しようとしています。

例:メソッドの呼び出し->ブール= true->メソッドの呼び出し-> boolean = false->メソッドの呼び出し-> boolean = true

だから基本的に、

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

メソッドを呼び出すたびに、ブール値がtrueに変わり、再びfalseになるため、これを実現する方法がわかりません。

36
aperson
value ^= true;

それは値xor-equals trueであり、毎回、分岐変数または一時変数なしでそれを反転します。

115
ILMTitan

それを見ないで、それ自体ではないに設定します。 Javaでコーディングする方法はわかりませんが、Objective-Cでは

booleanVariable = !booleanVariable;

これにより、変数が反転します。

47
JoePasq

呼び出されるたびにトグルするだけです

this.boolValue = !this.boolValue;
30
Randy Simon

上記のコードが実際のコードであると仮定すると、2つの問題があります。

1)ifステートメントは「==」ではなく「==」にする必要があります。割り当てではなく比較を行います。

2)2番目のifは「else if」でなければなりません。それ以外の場合は、falseの場合、trueに設定し、2番目のifを評価し、説明したようにfalseに戻します

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

さらにシンプルにするもう1つのことは、「!」です。オペレーター:

a = !a;

aの値を切り替えます。

17
bobDevil

私はboolean = !boolean;

15
GFP
value = (value) ? false : true;

条件付き(三項)演算子。

10
whirlwin
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>
7
EvilInside
private boolean negate(boolean val) {
    return !val;
}

それがあなたが求めているものだと思いますか?

3
rayd09

in Java変数に値を設定すると、新しい値が返されます。

private boolean getValue()
{
     return value = !value;
}
2
bmavus