Java 如果为真,则反转布尔值

Java 如果为真,则反转布尔值,java,boolean,Java,Boolean,如果另一个布尔值为真,那么反转布尔值最简洁的方法是什么。换句话说,写条件的最短方法是什么!值:值,最好只评估一次值 编辑:正如你所知,我正在将结果传递给一个方法这就是你想要的吗 if(condition) value = !value 你想要的只是 if (condition) value = !value; 无需引入条件运算符;那只是不必要的混乱。这样做的理由比 value = condition ? !value : value; 是因为上述执行赋值时不考虑条件的值;如果

如果另一个布尔值为真,那么反转布尔值最简洁的方法是什么。换句话说,写
条件的最短方法是什么!值:值
,最好只评估一次值


编辑:正如你所知,我正在将结果传递给一个方法

这就是你想要的吗

if(condition)
   value = !value
你想要的只是

if (condition)
    value = !value;
无需引入条件运算符;那只是不必要的混乱。这样做的理由比

value = condition ? !value : value;

是因为上述执行赋值时不考虑
条件
的值;如果
条件
,我们只需将
分配给自身。这也行得通,但在逻辑上并不是你真正想要的。如果
条件
为真,则需要反转
(即执行赋值)。我认为第二种变体只是对条件运算符的滥用。除此之外,第一个变体当然更易读,也更容易理解。

你为什么还要为长或短的偶数而烦恼呢。更喜欢可读性更强的代码。你可以写

if (SomeCondition) {
    value = !value;
}

因为不需要
else
条件,因为
在else中是

正如您的问题所说,
如果为true,则反转bool

你应使用:

 if(statement)
    {

    value=!value;
    }
你可以试试:

value = condition ^ value
虽然不是最容易阅读的解决方案。

最短的方法是

value ^= condition;

一个好方法是使用这样的函数或方法

boolean invert(布尔条件,布尔值){返回条件!=value;}

事实上:

condition value  inversion
t           t      f
t           f      t
f           t      t
f           f      f

在前两种情况下,条件为真,并执行反转,否则在后两种情况下。

我不理解你的问题。我认为“value=condition?!value:value”似乎是最精简的形式。如果你在寻找最精简的形式,则可能重复@gtgaxiola,使用异或比使用三元运算符短得多。@SajadLfc不,这不是它的重复。这个问题还有一点。这不是传递到方法中的最佳形式,但任何称职的程序员都知道这是
value=value^condition
的缩写。谢谢你的帮助。使用
if(statement==true)
你可以像
if(statement=true)
那样写,很容易出错。为了避免此类错误,最好使用:
if(true==statement)
或just
if(statement)
,因为
statement==true
与just
statement
@Pshemo相同;就像尤达的情况一样,我知道。