相关疑难解决方法(0)

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

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

if (theBoolean) {
    theBoolean = false;
} else {
    theBoolean = true;
}
Run Code Online (Sandbox Code Playgroud)

java boolean

205
推荐指数
4
解决办法
14万
查看次数

Java中的快捷方式"or-assignment"(| =)运算符

我在Java中有很长的比较,我想知道它们中的一个或多个是否真实.比较字符串很长且难以阅读,因此我将其分解以便于阅读,并自动使用快捷操作符|=而不是negativeValue = negativeValue || boolean.

boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Run Code Online (Sandbox Code Playgroud)

negativeValue如果任何默认的<something>值为负,我希望是真的.这有效吗?它会做我期望的吗?我在Sun的网站或stackoverflow上看不到它,但Eclipse似乎没有问题,代码编译和运行.


同样,如果我想执行几个逻辑交叉点,我可以使用&=而不是&&吗?

java assignment-operator or-operator compound-assignment

84
推荐指数
2
解决办法
6万
查看次数

为什么Java没有条件和条件或运算符的复合赋值版本?(&& =,|| =)

因此,对于在布尔二元运算符,Java有&,|,^,&&||.

让我们简要总结一下他们在这里简要介绍的内容:

对于&,结果值是true两个操作数值是否为true; 否则,结果是false.

对于|,结果值是false两个操作数值是否为false; 否则,结果是true.

对于^,结果值是true操作数值是否不同; 否则,结果是false.

&&操作是一样&,但是评估其右边的操作数只有在其左侧操作数的值true.

||操作是一样|的,但评估其右边的操作数只有在其左侧操作数的值false.

现在,所有5间,那些3有复合赋值版本,分别为|=,&=^=.所以我的问题是显而易见的:为什么不是Java提供&&=||=呢?我发现我需要那些比我更需要更多的&=|=.

而且我不认为"因为它太长"是一个很好的答案,因为Java有>>>=.这个遗漏必须有更好的理由.


15.26分配运营商 …

java conditional-operator short-circuiting assignment-operator compound-assignment

77
推荐指数
4
解决办法
1万
查看次数

|之间有什么区别?和|| 在Java?

可能重复:
为什么我们通常||不使用|,有什么区别?

标题说明了一切.它已被讨论过其他语言,但我还没有看到它用于Java.

java

15
推荐指数
0
解决办法
8532
查看次数

在"if"语句中与==和=混淆

我知道我们不能在java中的if语句中使用赋值运算符,因为我们在其他几种语言中使用它.

那是

            int a;

            if(a = 1) {  } 
Run Code Online (Sandbox Code Playgroud)

会给出编译错误.

但是下面的代码工作得很好,怎么样?

           boolean b;

           if(b = true) {   }
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个例外,规则不能在if语句中使用赋值.

java scjp compiler-errors

12
推荐指数
2
解决办法
9606
查看次数