— 本文参照 Learn Java for Android Development (第三版)
逻辑运算符
逻辑运算符包括与(&)、非(!)、异或(^)、或(|)。逻辑运算符虽然看起来跟条件运算符相似,但是操作数都是不一样的,逻辑运算的操作数都是布尔类型的。例如!false的返回结果就是true,而age > 64 & stillWorking这个表达式的结果需要由&符号两边的操作数来决定。这并不像条件操作符那样有简便的运算可以选择,同理这也适用于或运算和异或运算。下面用实际的例子来实践一下这些逻辑运算符:
public class Example
{
public static void main(String[] args)
{
System.out.println(!false);
int age = 65;
boolean stillWorking = true;
System.out.println(age > 64 & stillWorking);
System.out.println();
boolean result = true & true;
System.out.println("true & true: " + result);
result = true & false;
System.out.println("true & false: " + result);
result = false & true;
System.out.println("false & true: " + result);
result = false & false;
System.out.println("false & false: " + result);
System.out.println();
result = true | true;
System.out.println("true | true: " + result);
result = true | false;
System.out.println("true | false: " + result);
result = false | true;
System.out.println("false | true: " + result);
result = false | false;
System.out.println("false | false: " + result);
System.out.println();
result = true ^ true;
System.out.println("true ^ true: " + result);
result = true ^ false;
System.out.println("true ^ false: " + result);
result = false ^ true;
System.out.println("false ^ true: " + result);
result = false ^ false;
System.out.println("false ^ false: " + result);
System.out.println();
int numEmployees = 1;
age = 65;
System.out.println(age > 64 & ++numEmployees > 2);
System.out.println(numEmployees);
}
}
编译运行以上的代码可以看出,代码首先打印了!false 和 age > 64 & stillWorking两个表达式的结果以后,接下来将打印出3个表格向我们展示当操作数为true或者false的时候我们的&、^、|这几个运算符的操作结果。最后我们可以看到简便运算在这几个操作符的运算里面是不可行的。
true
true
true & true: true
true & false: false
false & true: false
false & false: false
true | true: true
true | false: true
false | true: true
false | false: false
true ^ true: false
true ^ false: true
false ^ true: true
false ^ false: false
false
2
对照这些打印结果看看自己的猜想是否正确吧。
Page 64