Подтвердить что ты не робот

Как сделать логическую переменную переключения между true и false каждый раз при вызове метода?

Я пытаюсь написать метод, который при вызове изменяет логическую переменную на true, а при повторном вызове изменяет одну и ту же переменную на false и т.д.

Например: метод вызова → boolean = true → метод вызова → boolean = false → метод вызова → boolean = true

Итак, в основном,

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

Я не уверен, как это сделать, потому что каждый раз, когда я вызываю метод, значение boolean изменяется на true, а затем false.

4b9b3361

Ответ 1

value ^= true;

Это значение xor-equals true, которое будет переворачивать его каждый раз и без каких-либо ветвящихся или временных переменных.

Ответ 2

Не глядя на него, установите его не сам. Я не знаю, как закодировать его в Java, но в Objective-C я бы сказал

booleanVariable = !booleanVariable;

Это переворачивает переменную.

Ответ 3

Просто переключайтесь каждый раз, когда он вызывается

public class A

  public A() {
    this.boolValue = false;
  }

  public void toggle() {
    this.boolValue = !this.boolValue;
  }
}

Ответ 4

Предполагая, что ваш код выше - это фактический код, у вас есть две проблемы:

1) ваши операторы if должны быть '==', а не '='. Вы хотите сделать сравнение, а не присваивание.

2) Второй, если должен быть "else if". В противном случае, когда он будет ложным, вы установите значение true, а затем второе, если будет оценено, и вы вернете его к false, как описано

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

Еще одна вещь, которая сделала бы ее еще проще, - это "!" Оператор:

a = !a;

будет переключать значение a.

Ответ 5

Я делаю это с помощью boolean = !boolean;

Ответ 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>

Ответ 8

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

Я думаю, это то, о чем вы просите