Ou seja, com o operador logico && existe um “curto-circuito”, ou seja, se a primeira condição for avaliada como false ele não avalia a segunda pois independente do resultado dela o resultado final será false, já no & não existe isso, ou seja as duas condições sempre serão verificadas.
Descupe-me não dizer o nome desses operadores logicos é que estou esquecido : /