Selezione a catena e annidata: else if in C#

Quando le alternative sono più di due, possiamo usare una catena di condizioni con if, else if ed eventualmente else. Le condizioni vengono valutate dall’alto verso il basso: viene eseguito soltanto il primo ramo la cui condizione è vera.

La struttura if – else if – else

int voto = 7;
if (voto < 6)
{
    Console.WriteLine("Insufficiente");
}
else if (voto < 8)
{
    Console.WriteLine("Sufficiente o discreto");
}
else
{
    Console.WriteLine("Buono o superiore");
}

Nel secondo controllo non serve riscrivere voto >= 6, perché quel ramo viene raggiunto soltanto quando la prima condizione è falsa. L’ordine dei confronti è quindi parte dell’algoritmo.

Selezioni annidate

Si parla di annidamento quando inseriamo un’istruzione if dentro il ramo di un’altra selezione. È utile quando una seconda verifica ha senso soltanto dopo la prima.

int eta = 19;
bool documento = true;
if (eta >= 18)
{
    if (documento)
    {
        Console.WriteLine("Ingresso consentito");
    }
    else
    {
        Console.WriteLine("Documento mancante");
    }
}
else
{
    Console.WriteLine("Età insufficiente");
}

Catena o annidamento?

Usa la else if quando devi scegliere fra alternative dello stesso livello (per esempio una fascia di temperatura). Usa selezioni annidate quando un controllo dipende dal risultato di un altro. Evita annidamenti inutili che rendono più difficile leggere il codice.

Errori comuni

  • Mettere prima una condizione troppo generale: potrebbe assorbire tutti i casi successivi.
  • Usare più if indipendenti quando deve essere eseguita una sola alternativa.
  • Confondere l’else finale con una nuova condizione: gestisce tutti i casi rimasti.

Esercizi

  • Classifica la temperatura come fredda, mite o calda usando tre fasce.
  • Stabilisci lo sconto in base a tre fasce di importo.
  • Per un ingresso, controlla prima l’età e poi il possesso del biglietto.

← Torna al percorso sulla selezione