Alternativa ciondolante

Considera i due diagrammi di flusso e le corrispondenti codifiche

Else ciondolante 1 Else ciondolante 2
BASIC
C…
Pascal
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. L’uso delle etichette di apertura e chiusura dei blocchi risolve l’ambiguità in C e Pascal.
    Il programmatore alle prime armi dovrebbe utilizzare sempre le etichette di inizio e fine blocco per evitare di incorrere nell’errore dell’else ciondolante.