什么是|,!和&在if语句之外做什么?

时间:2013-12-27 08:52:31

标签: java

这看起来似乎是一个非常无聊的问题,但我看到在If语句之外比较符号如| ! &,并且一直在想它是什么意思,以及如何使用它。我看到的最多的是设置变量,例如int = 1 | 2。三江源。

2 个答案:

答案 0 :(得分:4)

他们完全按照if内所做的去做。假设a和b都是boolean类型:

    如果a | ba为真(或两者兼有),则
  1. b为真。
  2. 如果a & ba都为真,则
  3. b为真。
  4. !如果a是假,则a为真。
  5. 我怀疑令人困惑的是,boolean类型的表达式可以像intfloat一样被视为值。但是,这里没有什么神奇的事情发生。 boolean类似于intfloat。您可以拥有boolean个变量,boolean参数,boolean字段和返回boolean的函数。

    另请注意,使用布尔参数,您比||&&更有可能遇到|&。它们大致相同,但表现出短路行为。例如,在评估表达式f() || g()时,如果f()返回true,则整个表达式将评估为true,甚至不会调用g(),因为它不会影响答案。如果g()很慢,这会更快,但如果g()会产生副作用(如更改全局状态或打印到控制台),也会更改程序的含义。相比之下,无论f() | g()返回什么,g()都会评估f()

答案 1 :(得分:0)

听说过按位运算符?是的他们是一样的。

参考:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html