Can anyone slowly explain this:
A. !( 1 || 0 ) ANSWER: 0
B. !( 1 || 1 && 0 ) ANSWER: 0 (AND is evaluated before OR)
C. !( ( 1 || 0 ) && 0 ) ANSWER: 1 (Parenthesis are useful)
Evaluate !(1 && !(0 || 1)).
by this
More interesting conditions using boolean operators
Boolean operators
allow you to create more complex conditional statements. For example, if you
wish to check if a variable is both greater than five and less than ten, you
could use the Boolean AND to ensure both var > 5 and var < 10 are true. In
the following discussion of Boolean operators, I will capitalize the Boolean
operators in order to distinguish them from normal English. The actual C
operators of equivalent function will be described further along into the
tutorial - the C symbols are not: OR, AND, NOT, although they are of equivalent
function.
When using if statements, you will often wish to check
multiple different conditions. You must understand the Boolean operators OR,
NOT, and AND. The boolean operators function in a similar way to the comparison
operators: each returns 0 if evaluates to FALSE or 1 if it evaluates to TRUE.
NOT: The NOT operator accepts one input. If that input is TRUE, it
returns FALSE, and if that input is FALSE, it returns TRUE. For example, NOT (1)
evaluates to 0, and NOT (0) evaluates to 1. NOT (any number but zero) evaluates
to 0. In C NOT is written as !. NOT is evaluated prior to both AND and OR.
AND: This is another important command. AND returns TRUE if both inputs
are TRUE (if 'this' AND 'that' are true). (1) AND (0) would evaluate to zero
because one of the inputs is false (both must be TRUE for it to evaluate to
TRUE). (1) AND (1) evaluates to 1. (any number but 0) AND (0) evaluates to 0.
The AND operator is written && in C. Do not be confused by thinking it
checks equality between numbers: it does not. Keep in mind that the AND operator
is evaluated before the OR operator.
OR: Very useful is the OR
statement! If either (or both) of the two values it checks are TRUE then it
returns TRUE. For example, (1) OR (0) evaluates to 1. (0) OR (0) evaluates to 0.
The OR is written as || in C. Those are the pipe characters. On your keyboard,
they may look like a stretched colon. On my computer the pipe shares its key
with \. Keep in mind that OR will be evaluated after AND.
It is possible
to combine several Boolean operators in a single statement; often you will find
doing so to be of great value when creating complex expressions for if
statements. What is !(1 && 0)? Of course, it would be TRUE. It is true
is because 1 && 0 evaluates to 0 and !0 evaluates to TRUE (i.e., 1).
Try some of these - they're not too hard. If you have questions about
them, feel free to stop by our forums.