Ответ 1
value ^= true;
Это значение xor-equals true, которое будет переворачивать его каждый раз и без каких-либо ветвящихся или временных переменных.
Я пытаюсь написать метод, который при вызове изменяет логическую переменную на true, а при повторном вызове изменяет одну и ту же переменную на false и т.д.
Например: метод вызова → boolean = true → метод вызова → boolean = false → метод вызова → boolean = true
Итак, в основном,
if (a = false) { a = true; }
if (a = true) { a = false; }
Я не уверен, как это сделать, потому что каждый раз, когда я вызываю метод, значение boolean изменяется на true, а затем false.
value ^= true;
Это значение xor-equals true, которое будет переворачивать его каждый раз и без каких-либо ветвящихся или временных переменных.
Не глядя на него, установите его не сам. Я не знаю, как закодировать его в Java, но в Objective-C я бы сказал
booleanVariable = !booleanVariable;
Это переворачивает переменную.
Просто переключайтесь каждый раз, когда он вызывается
public class A
public A() {
this.boolValue = false;
}
public void toggle() {
this.boolValue = !this.boolValue;
}
}
Предполагая, что ваш код выше - это фактический код, у вас есть две проблемы:
1) ваши операторы if должны быть '==', а не '='. Вы хотите сделать сравнение, а не присваивание.
2) Второй, если должен быть "else if". В противном случае, когда он будет ложным, вы установите значение true, а затем второе, если будет оценено, и вы вернете его к false, как описано
if (a == false) {
a = true;
} else if (a == true) {
a = false;
}
Еще одна вещь, которая сделала бы ее еще проще, - это "!" Оператор:
a = !a;
будет переключать значение a.
Я делаю это с помощью boolean = !boolean;
value = (value) ? false : true;
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>
private boolean negate(boolean val) {
return !val;
}
Я думаю, это то, о чем вы просите