Compound Boolean Expressions
| English | Chinese | Pinyin |
|---|---|---|
| AND | 逻辑与 | luó jí yǔ |
| OR | 逻辑或 | luó jí huò |
| NOT | 逻辑非 | luó jí fēi |
| short-circuit evaluation | 短路求值 | duǎn lù qiú zhí |
AND and OR
- Combine conditions with
&&(logical AND 逻辑与) and||(logical OR 逻辑或). a && bistrueonly when both aretrue.a || bistruewhen at least one istrue.- "Is the number between 1 and 10?" →
x >= 1 && x <= 10.
NOT reverses
!(logical NOT 逻辑非) flips a Boolean:!trueisfalse,!falseistrue.!(x > 5)istrueexactly whenxis not greater than5.- NOT applies to the expression right after it — use parentheses for clarity.
- Double negation cancels:
!!aequalsa.
Short-circuit evaluation
&&and||stop as soon as the answer is known — this is short-circuit evaluation 短路求值.- For
a && b: ifaisfalse, the result isfalseandbis never evaluated. - For
a || b: ifaistrue, the result istrueandbis skipped. - This lets you guard:
x != 0 && 10 / x > 2avoids dividing by zero.
Truth tables and parentheses
- A truth table lists every combination of inputs and the expression's result.
- With two variables there are $4$ rows; build one to check tricky logic.
- Use parentheses to make precedence explicit:
(a && b) || c. - Without them,
&&binds tighter than||— a common source of confusion.
Short-circuiting isn't just an optimization — it can prevent errors. In x != 0 && 10 / x > 2, if x is 0 the left side is false, so Java never evaluates 10 / x and avoids a divide-by-zero. Swap the order and it crashes. Also, && binds tighter than ||, so parenthesize mixed expressions to say exactly what you mean.
Is x outside 1–10?
x < 1 || x > 10→truewhenxis too small or too big.x = 15→false || true→true(outside).x = 5→false || false→false(inside).
Combine conditions with && (both true), || (at least one true), and ! (reverse). Java uses short-circuit evaluation: &&/|| stop once the result is known (handy for guards like x != 0 && 10/x > 2). Build a truth table for tricky logic and use parentheses — && binds tighter than ||.
AND of two conditions
&& is true only when both inputs are true.
a && b is true when...
&& (AND) needs both operands true.
In a && b, if a is false, then b is...
&& short-circuits: a false left side makes the result false immediately.
!(true) evaluates to false.
! reverses the Boolean value.
With x = 5, what does x < 1 || x > 10 evaluate to?
false || false → false (5 is inside 1..10).
The behavior where && and || stop as soon as the result is known is called ___-circuit evaluation (one word).
Short-circuit evaluation stops early.