Alternativa ciondolante

Considera i due diagrammi di flusso e le corrispondenti codifiche

Else ciondolante 1 Else ciondolante 2
BASIC
C… ERRORE!
Pascal ERRORE!
Python

Un programmatore inesperto potrebbe produrre il codice nell’ultima colonna per il secondo diagramma di flusso.
Purtroppo il compilatore lo interpreterà come corrispondente al primo diagramma…

  • il compilatore non prende in considerazione l’indentazione ma associa correttamente l’Else all’ultimo If rimasto aperto
  • il ramo Else si sposta da sinistra verso destra, ciondola.

Osserva

  1. In Basic non si può sbagliare perché l’etichetta END IF è sempre presente e differenzia i due casi.
  2. In Python non si può sbagliare perché l’indentazione è sempre presente e differenzia i due casi.
  3. In C... e Pascal si risolve l’ambiguità utilizzando le etichette di apertura e chiusura dei blocchi.
    Il programmatore alle prime armi, per evitare di incorrere nell’errore dell’else ciondolante, dovrebbe utilizzare sempre le etichette di inizio e fine blocco