Spiegazione
Iniziamo subito con un esempio semplice e molto intuibile:
Condizione iniziale: luce spenta. SE premo l’interruttore, ALLORA accendi la luce, ALTRIMENTI la luce rimane spenta.
Adesso passiamo ad un esempio con un SE (o IF) annidato:
ATTENZIONE! L’esercizio che vedrai adesso non è un esercizio reale nello pseudolinguaggio. Se ti interessa l’esercizio reale, clicca qui (ultimo paragrafo).
Condizione iniziale: il numero è 50.
SE il numero è minore di 100
ALLORA
SE il numero è contemporaneamente maggiore di 30
ALLORA
scrivi "Il numero è intermedio"
ALTRIMENTI
scrivi "Il numero è basso"
FINE_SE
ALTRIMENTI
scrivi "Il numero è alto"
FINE_SE
Secondo questa logica, il numero 50 sarà intermedio. Ho evidenziato i due SE con colori diversi.
I se-altrimenti sono quasi sempre chiamati IF ELSE (letteralmente dall’inglese: se altrimenti).
Come si codifica
Praticamente, nell’esempio sopra hai già visto come funziona, con l’indentazione corretta. Ovviamente, sopra e sotto ci saranno INIZIO e FINE, e magari altre istruzioni.
Ogni IF deve iniziare con la parola chiave SE e finire con la parola chiave FINE_SE, sempre sulla stessa “colonna”. Nel mezzo, poi, ci andranno le parole chiave ALLORA con il seguente codice, che viene eseguito se la condizione espressa nel SE è vera, e/o ALTRIMENTI con il seguente codice, che viene eseguito se la condizione espressa dal SE è falsa.
Il blocco ALTRIMENTI può essere omesso in certi casi, e spesso è più conveniente.
L’indentazione, che differenza!
Confronta il programma scritto sopra, indentato, con quello che ti propongo qui sotto, non indentato.
SE il numero è minore di 100
ALLORA
SE il numero è contemporaneamente maggiore di 30
ALLORA
scrivi "Il numero è basso"
ALTRIMENTI
scrivi "Il numero è intermedio"
FINE_SE
ALTRIMENTI
scrivi "Il numero è alto"
FINE_SE
Come vedi, questo non indentato crea solo confusione e non fa capire di che SE fanno parte gli ALLORA e gli ALTRIMENTI.
Esempio reale e completo con i SE
Ovviamente quello che ho scritto sopra è solo uno schizzo, ma non è esattamente come dice lo pseudolinguaggio.
La condizione del SE, ad esempio, deve essere tra parentesi.
Ecco quindi l’esercizio proposto precedentemente, in pseudolinguaggio:
INIZIO
leggi numero
SE (numero<100)
ALLORA
SE (numero>30)
ALLORA
scrivi "Il numero è basso"
ALTRIMENTI
scrivi "Il numero è intermedio"
FINE_SE
ALTRIMENTI
scrivi "Il numero è alto"
FINE_SE
FINE
Per questioni di spazio non riesco a indentare con spazi della stessa grandezza, ma voi fatelo!
Ora sei pronto per fare qualche esercizio in più sugli IF ELSE!