! | !p | Not (negation) !p is true if p is false |
&& | p && q | And (conjugation) p && q is true if both p and q are true |
|| | p || q | Or (disjunction) p || q is true if either p or q is true |
An important feature of the && || operators is that they, unlike arithmetic operators, do not always evaluate their second operand. The operands are evaluated one at a time from left to right and no more operands are evaluated when the result can be deducted. This is called short-circuit evaluation. One expression can be used to guard a potentially unsafe operation. For example: a possible division-by-zero:
int distance = 0;
int speed = 0;
int time = 0;
//...
if( speed != 0 && distance % speed == 0 )
{
time = distance / speed;
}
where the short-circuit evaluation of && guarantees that an attempt to get the remainder from the division-by-zero or the division-by-zero never occur.
No comments:
Post a Comment