|
|
|
JAVA程序员必读:基础篇(3)语言基础
|
|
编译:ZSC/太平洋网络学院
|
|
|
语言基础
3.2.2 关系与条件运算符
关系运算符经常用在条件运算符中来构造更复杂的判断表达式。JAVA变成语言支持六种条件运算符:五个双元运算符和一个单元运算符,如下表所示;
运算符
|
用法
|
什么情况返回true
|
&&
|
op1 && op2
|
op1 和 op2都是true,有条件地计算op2
|
||
|
op1 || op2
|
op1 或者 op2是true,有条件地计算op2
|
!
|
! op
|
op为false
|
&
|
op1 & op2
|
op1 和 op2都是true,总是计算op1和op2
|
|
|
op1 | op2
|
op1 或者 op2是true,总是计算op1和op2
|
^
|
op1 ^ op2
|
如果op1和op2是不同的,也就是说,有其中一个运算对象是真的而不是两个都为真的时候
|
&&运算符可以完成条件AND的操作。你可以使用两个不同的关系运算符和&&来决定是否两个关系都为true。下面的一行代码使用了这个技术来决定是否数组的索引处在两个边界之间。它决定了是否索引都大于等于0并且小于等于NUM_ENTRIES(它是在之前被定义为常数)。
0 <= index && index < NUM_ENTRIES
这里注意在一些实例中,第二个运算对象可能不用运算,因为如果第一个运算对象是false,则结果就一个是false,因此不用在计算第二个运算对象了。你看看以下的代码:
(numChars < LIMIT) && (...)
&&运算符只有在两个运算对象都为true的时候,才返回true。因此,如果numChars大于等于LIMIT的时候,&&左边的运算对象就为false,这时就不用在计算右边的运算对象就返回了数值false。在这个例子中,编译器将不会计算右边的运算对象。如果右边运算对象有副效应的的话(比如读一个流、更新一个数值或者进行一个计算)这个有重要的含义。
当两边的运算对象都是boolean(布尔型),运算符号&跟&&执行相同运算。但是,&总是要计算两边的运算对象然后再在两个运算对象同为true的时候才返回true。同样地,当运算对象都为boolean(布尔型)的时候,|执行与操作符号||一样的功能。这个|运算符总是要计算两边的运算对象然后在最少有一边为true的时候才返回true。当它们的运算对象为数字的时候,&
和|是按位操作的。
[上一页]
[下一页]
|
|
|