逻辑运算符分类
逻辑运算符AND(&&)、OR(11)以及NOT(!)能生成一个布尔值(true或false)-—以自变量的逻辑关系为基础。逻辑运算符一般用于连接boolean类型的表达式(就是用运算符把常量或者变量连接起来的符合java语法的式子,算术表达式:a+b比较表达式:a == b)或者值。
只可将AND,OR或NOT应用于布尔值。与在C及C++中不同,不可将一个非布尔值当作布尔值在逻辑表达式中使用。
短路与非短路
当使用&&时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
当使用&时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就还会再判断第二个操作。
代码实例
短路逻辑运算符
public class LogicalOperator{
public static void main(String[] args){
boolean a = true;
boolean b=false;
//逻辑与
System.out.printn("a && b "+ (a&&b));
//逻辑或
System.out.println("a||b"+(a||b));
//逻辑非
System.out.println("!a"+(!a));
//综合
System.out.println("!(a 8& b) "+!(a && b));
//异或运算符
System.out.println("!(a^b) "+!(a^b));
//逻辑运算符连接表达式
System.out.println("5>3&&'6'>10"+!(5>3&&'6'>10));
}
}
非短路逻辑运算符
public class NotCircuitLogical {
public static void main(String[] args){
int a = 5;//定义一个变量;
boolean b=(a<4)&&(a++<10);
System.out.println(”使用短路逻辑运算符的结果为"+b);
System.out.println("a的结果为"+a);
boolean c=(a<4)&(a++<10);
System.out.println("使用非短路逻辑运算符的结果为"+c);
System.out.println("a的结果为"+a);
}
}