Java编程那些事儿23—逻辑运算符
4.3 逻辑运算符
逻辑运算符是指举办逻辑运算的标记。逻辑运算主要包罗与(and)、或(or)和非(not)三种,在措施中主要用来毗连多个条件,从而形成越发巨大的条件。
逻辑运算符的运算功效是boolean范例。
参加逻辑运算的数据也必需是boolean范例。
关于逻辑运算符的种类和说明参看表4-3。
表4-3 逻辑运算符
标记 | 名称 | 成果说明 |
&& | 逻辑与 | 两个条件同时为true才为true,不然为false |
|| | 逻辑或 | 两个条件有一个为true则为true,不然为false |
! | 逻辑非 | 只操纵一个数据,对数据取反 |
逻辑运算符利用示例代码:
boolean b1 = true;
boolean b2 = false;
boolean b3 = b1 && b2; //则b3的值是false
b3 = b1 || b2; //则b3的值是true
b3 = !b1; //则b3的值是false
在实际措施中,可以按照逻辑的需要利用对应的逻辑运算标记。实际利用示例:
l暗示变量n是否属于[0,10)区间
int n = 4;
boolean b = (n >=0) && (n < 10);
对付变量n来说,只要n同时满意大于便是零,且小于10,则位于[0,10)区间,由于措施中无法书写0<=n<10这样的条件,则必需通过逻辑运算符举办毗连。
l暗示变量n不属于[0,10)区间
一种写法是:
int n = 4;
boolean b = !((n >= 0) && (n < 10));
这里,对付属于该区间的条件取反,则可以得到不属于该区间的条件。
另一种写法是:
int n = 4;
boolean b = (n < 0) || (n >= 10);
这里做了一个简朴的变通,假如变量n不属于该区间,则在数学上只需要满意n小于0可能n大于便是10的任何一个条件即可,这样的可醒目系在措施中实现时利用逻辑或实现。
在措施设计中,按照逻辑需要,利用对应的逻辑运算符,可以实现相比拟力巨大的组合条件,从而实现对应措施的成果。
最后说一下&&和&的区别,其实在举办逻辑与运算时,既可以利用&&也可以利用&,在成果上自己没有区别。两者区此外位置在,对付&来说,假如左侧条件为false,也管帐算右侧条件的值,而对付&&来说,假如左侧的条件为false,则不计较右侧的条件,这种现象被称作短路现象。
示例代码:
int n = -1;
boolean b1 = (n >= 0) && (n < 10);
boolean b2 = (n >= 0) & (n < 10);
则对付第二行代码来说,两个条件都将被计较,而对付第三行代码来说,因为n >= 0这个条件不创立,则n < 10基础不会被执行。虽然,两者获得的最终功效是一样的。
对付此刻的代码来说,区别不大,可是假如后续的条件是一个要领(要领的观念后续将先容到),则将影响措施逻辑。
验证&和&&成果的示例代码如下:
public class Test{
public static void main(String[] args){
int n = 10;
boolean b = (n < 8) && ((n = 1) != 0);
int m = 20;
boolean b1 = (m < 8) & ((m = 1) != 0);
System.out.println(n);
System.out.println(m);
}
}
文章来历:http://blog.csdn.net/Mailbomb/archive/2008/05/22/2470337.aspx