Appearance
Boolean Operations
For the Boolean type boolean , there are always only two values: true and false .
Boolean operations are a type of relational operations, including the following categories:
- Comparison operators:
>,>=,<,<=,==,!= - AND operation
&& - OR operation
|| - Not arithmetic
!
Here are some examples:
java
boolean isGreater = 5 > 3; // true
int age = 12;
boolean isZero = age == 0; // false
boolean isNonZero = !isZero; // true
boolean isAdult = age >= 18; // false
boolean isTeenager = age >6 && age <18; // trueThe precedence of relational operators from high to low is:
!>,>=,<,<===,!=&&||
Short Circuit Operation
An important feature of Boolean operations is short-circuit operations. If the result of a Boolean expression can be determined in advance, subsequent calculations will not be performed and the result will be returned directly.
Because the result of false && x is always false , regardless of whether x is true or false , the AND operation does not continue the calculation after determining that the first value is false , but directly returns false .
Let's examine the following code:
java
public class Main {
public static void main(String[] args) {
boolean b = 5 < 3;
boolean result = b && (5 / 0 > 0); // Here 5 / 0 will not report an error
System.out.println(result);
}
}If there is no short-circuit operation, the expression after && will report an error because the divisor is 0 , but in fact the statement does not report an error because the AND operation is a short-circuit operator and the result false is calculated in advance.
If the value of variable b is true , the expression becomes true && (5 / 0 > 0) . Because short-circuit operations cannot be performed, this expression will definitely report an error because the divisor is 0 You can test it yourself.
Similarly, for the || operation, as long as the first value can be determined to be true , subsequent calculations will not be performed, but true will be returned directly:
java
boolean result = true || (5 / 0 > 0); // trueTernary Operator
Java also provides a ternary operator b ? x : y , which returns the calculation result of one of the subsequent two expressions based on the result of the first Boolean expression. Example:
java
public class Main {
public static void main(String[] args) {
int n = -100;
int x = n >= 0 ? n : -n;
System.out.println(x);
}
}The meaning of the above statement is to determine whether n >= 0 is true. If it is true , return n , otherwise return -n . This is actually an expression that finds the absolute value.
Note that the ternary operation b ? x : y will first calculate b . If b is true , only x will be calculated. Otherwise, only y will be calculated. Furthermore, x and y must be of the same type, since the return value is not boolean , but one of x and y .
Practise
java
public class Main {
public static void main(String[] args) {
int age = 7;
// Definition of primary student: 6~12 years old
boolean isPrimaryStudent = ???;
System.out.println(isPrimaryStudent ? "Yes" : "No");
}
}Summary
The AND operation and the OR operation are short-circuit operations;
The types behind the ternary operation b ? x : y must be the same. The ternary operation is also a "short-circuit operation" and only x or y is calculated.