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)
或justif(statement)
,因为statement==true
与juststatement
@Pshemo相同;就像尤达的情况一样,我知道。