Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

&& ("E" lógico)

Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja a primeira condição "e" a segunda forem verdadeiras, e.g.

if (digitalRead(2) == 1 && digitalRead(3) == 1) { // ler dois interruptores

  // ...

}

é verdadeiro apenas se os dois interruptores estiverem fechados.

Verdadeiro se algum dos operandos for verdadeiro, ou seja se a primeira "ou" a segunda condição for verdadeira e.g.

if (x > 0 || y > 0) {

  // ...

}

é verdadeiro apenas se x ou y forem maiores que 0.

(negação)

Verdadeiro apenas se o operando for falso e.g.

if (!x) {

  // ...

}

é verdadeiro apenas se x for falso (i.e. se x for igual a 0).

Cuidado

Certifique-se de não confundir o operador booleano "E" representado por "&&" e o operador lógico de bits "E" representado apenas por "&". Eles são animais completamente diferentes. Do mesmo modo não confunda o booleano "OU" representado por "||" e o operador lógico de bits "|". O operador lógico de bits "NÃO" representado por um "~" não se parece com o operador booleano "!", mas mesmo assim tenha certeza de estar usando o que você deseja.

Exemplo

if (a >= 10 && a <= 20){} // verdadeiro se a estiver entre 10 e 20