if/else permite um controle maior sobre o fluxo de código do que a sentença if básica, tornando possível que múltiplos testes sejam agrupados. Por exemplo, uma entrada analógica poderia ser verificada e uma ação específica seria tomada se o valor de input fosse menor que 500 e outra ação seria tomada se o input fosse 500 ou mais. O código seria assim:

if (pinFiveInput < 500)
{
// ação A
}
else
{
// ação B
}

else pode preceder outro teste if , e assim mltiplos testes, mutuamente exclusivos, podem ser realizados ao mesmo tempo.

Cada teste precede o próximo até que um teste com vavlor verdadeiro é encontrado. Quando um teste com valor verdadeiro é encontrado o seu bloco de código associado é execuatod e então o programa salta para a sequencia após todo o bloco if/else. Se a nenhum teste é atribuido o valor verdadeiro o bloco que estiver no else sozinho é executado, se houver algum.

Note que um bloco else if pode ser usado com ou sem um bloco else final. Um número ilimitado destes ramos else if é permitido.

if (pinFiveInput < 500)
{
// faça a coisa A
}
else if (pinFiveInput >= 1000)
{
// faça a coisa B
}
else
{
// faça a coisa C
}

Exemplo:

/*
  Button
 Apaga e acende um LED conectado ao pino digital 13 quando um um botão é conectado ao pino 2
 
 O pino 13 tem um LED já conectado na maioria das placas Arduino.
 Você pode ou não conectar um diretamente na placa como na imagem.

 
 criado em 2005
 por DojoDave <http://www.0j0.org>
 modificado em 30 de agosto 2011
 por Tom Igoe
 
 
Este código de exeplo é de domínio público.
 
 http://www.arduino.cc/en/Tutorial/Button
 */

// constantes não podem ser alteradas, são utilizadas para ajustar os números dos pinos:
const int buttonPin = 2;     // o número do pino do botão
const int ledPin =  13;      // o número do pino do LED

// variaveis que podem ser alteradas:
int buttonState = 0;         // variável para leitura do status do botão

void setup() {
  // inicializa o pino do LED como output:
  pinMode(ledPin, OUTPUT);     
  // inicializa o pino do botão como input:
  pinMode(buttonPin, INPUT);    
}

void loop(){
  // lê o estado do pino do botão:
  buttonState = digitalRead(buttonPin);

  // verifica se o botão está pressionado.
  // se está o estado do botão é HIGH:
  if (buttonState == HIGH) {    
    // acende o LED:   
    digitalWrite(ledPin, HIGH); 
  }
  else {
    // apaga o LED:
    digitalWrite(ledPin, LOW);
  }
}

Para utilizar o código acima você necessita de uma placa Arduino que pode ser alimentada apenas pela conexão USB, um LED conectado um botão momentâneo, alguns jumpers, um resistor de 10kΩ e uma protoboard como na imagem abaixo. Caso um LED não seja conecatdo há um LED SMD conectado ao pino 13 na própria placa que responderá ao código.

 

imagem gerada com Fritzing

Outro modo de fazer testes de ramificações mutuamente exclusivas é através da sentença switch case.

Veja também:

switch case

Página de início da referência