【问题标题】:Reverse a boolean value? [duplicate]反转布尔值? [复制]
【发布时间】:2014-06-13 03:25:20
【问题描述】:

在 Java(或者说实话,任何计算机语言)中,要递增一个 int,您可以这样做:

// Option 1 - efficient
int x = 0;
x++;
// x = 1

// Option 2 - works, but is ugly
int y = 0;
y = y + 1;
// y = 1;

你会如何处理布尔值?

// Standard way to
// oppose a boolean
boolean isTrue = false;
if(isTrue){
    isTrue = false;
} else if(!isTrue){
    isTrue = true;
}

没有改变布尔值的快捷方式吗? 例如,如果布尔值是true,有没有办法通过像x++; 这样的小快捷方式来更改它?

【问题讨论】:

  • 我实际上更喜欢 ++/-- 成为语言的一部分。它们对于“类 C”代码非常有用,但也可能导致表达式滥用。
  • 为什么会这样?你更喜欢输入int a; a = a + 1;
  • 其实a += 1(在Java中这也是一个表达式,虽然如果我设计一门语言,所有的赋值都只是语句,但我离题了)。

标签: java boolean shortcut


【解决方案1】:

你可以使用!来翻转它的值。

isTrue = !isTrue;

! 反转布尔值。

【讨论】:

  • 这样就可以了:boolean a = false; a = !a; // a now equals true?
  • @user3422952 是的,试试看。这是您可以测试的最简单的事情。
  • 哈哈,我的编程电脑不在了——谢谢你的帮助!
  • @user3422952 存在ideone.com等在线编译器;)
【解决方案2】:

不,Java 中没有这样的快捷方式。

你可以做的是使用logical complement operator来反转值

!isTrue

但您必须重新分配结果。

【讨论】:

    猜你喜欢
    • 2011-06-03
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2014-01-24
    • 1970-01-01
    • 2013-04-05
    • 2012-02-13
    相关资源
    最近更新 更多