What is the difference between the Boolean & operator and the && operator?
If an expression including the Boolean & operator is evaluated, both operands are evaluated. Then the & operator is applied to the operand. When an expression including the && operator is evaluated, the first operand is evaluated. If the first operand returns a value of true then the second operand is evaluated. The && operator is then applied to the first and second operands. If the first operand evaluates to false, the evaluation of the second operand is skipped.