The last group of compares illustrate three possibilities for getting into
a bit of trouble. All three have the common result that z will not get set
to the desired value, but for different reasons. In the case of the first
one, the compare evaluates as true, but the semicolon following the
second parentheses terminates the if clause, and the assignment
statement involving z is always executed as the next statement. The if
therefore has no effect because of the misplaced semicolon. The second
statement is much more straightforward because x will always be equal
to itself, therefore the inequality will never be true, and the entire
statement will never do a thing, but is wasted effort. The last statement
will always assign 0 to x and the compare will therefore always be false,
never executing the conditional part of the if statement.