When the and operator has operands of type boolean type then it performs boolean AND. The result of the operation is of boolean type and is equal to true of both operands are true, and false if either operand is false. By default short circuit evaluation is used when performing the boolean AND (i.e. The left operand is evaluated first and if it is false then the right operand is not evaluated because the result of the operation must be false). A compiler option can be used to enable/disable short-circuit evaluation.
false and false results in false false and true results in false true and false results in false true and true results in true