Condizioni e salti

Condizioni: if-then-else

Attenzione al codice replicato

Le condizioni if sono indispensabili per eseguire codice diverso in base a delle condizioni quale, ad esempio, il valore di una variabile. Perciò si può scrivere a schermo una frase al singolare

È rimasto un solo posto, affrettati a prenotare!

in caso in cui, ad esempio su un volo, sia rimasto l’ultimo posto disponibile mentre si usano frasi diverse in situazioni diverse.

Un bravo programmatore deve identificare tutte e sole quelle istruzioni che cambiano sulla base della condizione. Contemporaneamente, le abilità di un programmatore si misurano anche sul riconoscere quali altre istruzioni, invece, non sono diverse in base alla condizione. Infatti queste dovrebbero essere scritti fuori dai blocchi condizionali per evitare di replicare codice.

Ad esempio, se dopo aver mostrato il messaggio con i posti disponibili, si vuole mostrare un banner pubblicitario uguale in tutti i casi, le istruzioni per fare questo possono essere scritte una volta sola e non per ogni condizione.

Esempio in Python

Vediamo un semplice esempio del caso appena descritto utilizzando il linguaggio Python (che è molto più “leggibile” di altri linguaggi, come Java).

if (posti == 1):
    print("È rimasto un solo posto, affrettati a prenotare!")
    mostra_banner()
elif(posti > 1 and a < posti):
    print(f"sono rimasti solo {posti} posti, non perdere l'occasione!")
    mostra_banner()
else:
    print("Ci sono ancora posti disponibili, fa l'affare del giorno!")
    mostra_banner()

Confrontiamo con

if (posti == 1):
    print("È rimasto un solo posto, affrettati a prenotare!")
elif(posti > 1 and posti < 5):
    print(f"sono rimasti solo {posti} posti, non perdere l'occasione!")
else:
    print("Ci sono ancora posti disponibili, fa l'affare del giorno!")
mostra_banner()

Quale soluzione delle due proposte sopra è migliore? Perché?

L’unica differenza tra le due versione è la chiamata alla funzione mostra_banner(), mentre sopra viene fatto all’interno di ogni blocco condizione (if, elif e else), sotto viene fatto una volta solo. Questo esempio è semplice, ma se si immagina che anziché mostra_banner(), ci fossero decine o centinaia di righe, allora si capisce subito che la seconda versione fa risparmiare molte righe di codice che sarebbero tra loro uguali.

  • Michele Schimd © 2024
  • Ultimo aggiornamento: 17/02/2024
  • Materiale di studio e di esercizio per gli alunni dello Zuccante.

Creative Commons License