如果为真,则反转bool

Bra*_*exe 3 java boolean

很抱歉,如果这似乎是一个迟钝的问题,但如果另一个布尔值为真,那么最简单的方法是反转布尔值.换句话说,什么是最短的写作方式condition ? !value : value,最好value只评估一次?

编辑:就这样你知道,我将结果传递给一个方法

Daw*_*ica 11

最短的路是

value ^= condition;
Run Code Online (Sandbox Code Playgroud)


ars*_*jii 6

你想要的只是

if (condition)
    value = !value;
Run Code Online (Sandbox Code Playgroud)

无需引入条件运算符;那只会是不必要的混乱。这将优于

value = condition ? !value : value;
Run Code Online (Sandbox Code Playgroud)

是因为无论condition的值如何,上面都会执行赋值;如果conditionfalse,我们只是分配value给它自己。这也有效,但在逻辑上并不是您真正想要的。如果为真,您想反转value(即执行赋值)。我认为第二种变体只是对条件运算符的误用。除此之外,第一个变体肯定更具可读性且更易于遵循。 condition