Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 84 di 93
  • livello avanzato
Indice lezioni

Istruzioni if-else nidificate

Le istruzioni condizionali del C++ possono anche essere utilizzate assieme. Possono essere dunque nidificate.
Le istruzioni condizionali del C++ possono anche essere utilizzate assieme. Possono essere dunque nidificate.
Link copiato negli appunti

Quando si utilizzano in C++ più costrutti if-else nidificati, occorre sempre essere sicuri dell'azione else che verrà associata ad un determinato if. Vediamo cosa accade nell'esempio seguente:

if(temperatura < 20)
if(temperatura < 10) cout << "Metti il cappotto!n";
else cout << " Basta mettere una felpa";

Come si vede, il codice non è allineato in maniera ben leggibile ed è facile che il programmatore poco esperto possa confonderne il flusso di esecuzione, non capendo bene a quale istruzione if fa riferimento l'istruzione else finale.

La regola base, in questi casi, dice che un'istruzione else è sempre riferita all'ultima istruzione if che compare nel codice. Ma, è bene non confondersi troppo le idee utilizzando tale regola, poichè ci sono casi in cui appaiono tante istruzioni if-else annidate con la conseguenza che la lettura del codice sarebbe davvero difficile per chiunque.

Per rendere il codice leggibile e per confondersi il meno possibile, è buona norma fare uso sempre delle parentesi graffe e dell'indentazione del codice.

Indentare il codice significa inserire degli spazi prima della scrittura di una riga in modo da facilitarne la comprensione e la leggibilità. L'esempio precedente, indentato e corretto con l'uso delle parentesi diventa:

if(temperatura < 20)
{
  if(temperatura < 10)
  {
    cout << "Metti il cappotto!";
  }
  else
  {
    cout << " Basta mettere una felpa";
  }
}

Oppure, per chi ama le forme abbreviate (ma più insidiose):

if(temperatura < 20)
  if(temperatura < 10) cout << "Metti il cappotto!";
  else cout << "Basta mettere una felpa";

Ora è decisamente più comprensibile. Adesso, infatti, diventa chiaro che l'istruzione else è riferita alla istruzione if(temperatura < 10).

Ti consigliamo anche