这看起来似乎是一个非常无聊的问题,但我看到在If语句之外比较符号如| ! &
,并且一直在想它是什么意思,以及如何使用它。我看到的最多的是设置变量,例如int = 1 | 2
。三江源。
答案 0 :(得分:4)
他们完全按照if
内所做的去做。假设a和b都是boolean
类型:
a | b
或a
为真(或两者兼有),则b
为真。a & b
和a
都为真,则b
为真。我怀疑令人困惑的是,boolean
类型的表达式可以像int
和float
一样被视为值。但是,这里没有什么神奇的事情发生。 boolean
类似于int
和float
。您可以拥有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