当前位置:  开发笔记 > 编程语言 > 正文

在Java中切换布尔变量的最简洁方法?

如何解决《在Java中切换布尔变量的最简洁方法?》经验,为你挑选了3个好方法。

是否有更好的方法来否定Java中的布尔值而不是简单的if-else?

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

Aaron Maenpa.. 513

theBoolean = !theBoolean;

我投票给类似于++ i和--i ;-)的!! bool算子 (29认同)

@ypnos:`!! bool ==!(!(bool))== bool`. (21认同)

那是......真的很明显 - 哎呀!不知道为什么我没想到它.谢谢. (14认同)

@ChristofferHammarström通过那个逻辑,那么不应该--integer == - ( - (整数))==整数? (12认同)


小智.. 158

theBoolean ^= true;

如果您的变量超过四个字母,则击键次数减少



1> Aaron Maenpa..:
theBoolean = !theBoolean;


我投票给类似于++ i和--i ;-)的!! bool算子
@ypnos:`!! bool ==!(!(bool))== bool`.
那是......真的很明显 - 哎呀!不知道为什么我没想到它.谢谢.
@ChristofferHammarström通过那个逻辑,那么不应该--integer == - ( - (整数))==整数?

2> 小智..:
theBoolean ^= true;

如果您的变量超过四个字母,则击键次数减少


它符合DRY :)
现在,我得到了名不见经传的名字 - 丢弃(syntax-drop?)XOR,让我在程序员朋友面前显得很酷.你的答案应该与所选择的一起合并,它们是纯粹的完美.
简洁是机智的灵魂.
@ScottStanchfield这样的人应该学习它.它并不难,它不是黑客,而且不知道它经常导致糟糕的代码,例如这个问题.这是一个真正的爆炸 - 使用标准惯例的五行!
[此操作也比其他版本更快12%](http://jsperf.com/boolean-toggling),如`theBoolean =!theBoolean;`或`theBoolean = theBoolean?false:true;`
想想"应该学习它"与"试图了解当你有一天修复错误时会发生什么".是的,XOR在这里很酷,但是我提到的人数是多少人说"嗯?" 是惊人的.您应该始终为维护程序员编写代码,尽可能简化他的工作,因为无论编写代码的程度如何,阅读其他人的代码真的很糟糕.

3> Levite..:
有几个

"明显"的方式(对大多数人来说)

theBoolean = !theBoolean;

"最短"的方式(大部分时间)

theBoolean ^= true;

"最直观"的方式(最不确定)

theBoolean = theBoolean ? false : true;
额外:在方法调用中切换和使用
theMethod( theBoolean ^= true );

由于赋值运算符始终返回已分配的内容,因此将通过按位运算符切换值,然后返回要在方法调用中使用的新分配值.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有