&& and || use short-circuit evaluation, i.e. in the expression a&&b a is evaluated first, if it is false then the whole expression is false and b is not evaluated. In a||b if a is true then b is not evaluated. Note that if you overload && or || short-circuit rules will no longer apply. HTH