Usare le condizioni if/else
Una parte essenziale della programmazione consiste nel prendere decisioni basate sui dati. In questa unità si apprenderà come controllare le azioni del programma testando le condizioni.
È possibile creare rami condizionali nel codice usando le parole chiave if
e else
. Molti linguaggi di programmazione offrono questa funzionalità e usano una sintassi simile.
Le parole chiave if
e else
vengono usate con le espressioni per testare i valori ed eseguire azioni in base al risultato del test. Tutte le espressioni condizionali generano un valore booleano true o false.
Definire una condizione if/else
Ecco un esempio che verifica se due numeri sono uguali e genera un messaggio in base al risultato del test:
if 1 == 2 {
println!("True, the numbers are equal."); //
} else {
println!("False, the numbers are not equal.");
}
In questo esempio la condizione if
è l'espressione 1 == 2
, che restituisce un tipo booleano con il valore false.
A differenza della maggior parte degli altri linguaggi, i blocchi if
in Rust possono fungere anche da espressioni. Tutti i blocchi di esecuzione nei rami della condizione devono restituire lo stesso tipo per la compilazione del codice.
let formal = true;
let greeting = if formal { // if used here as an expression
"Good day to you." // return a String
} else {
"Hey!" // return a String
};
println!("{}", greeting) // prints "Good day to you."
In questo esempio viene assegnato un valore alla variabile greeting
in base al risultato dell'espressione if formal
. Se l'espressione if formal
è true, il valore di greeting
viene impostato sulla stringa "Good day to you". Se l'espressione è false, il valore di greeting
viene impostato sulla stringa "Hey!". Poiché la variabile formal
è stata inizializzata su true, anche il risultato dell'espressione if formal
è true.
Combinare più condizioni di test
È possibile combinare if
e else
insieme per formare un'espressione else if
. È possibile usare più condizioni else if
dopo la condizione iniziale if
e prima di una condizione else
di chiusura, che è facoltativa.
Se un'espressione condizionale restituisce true
, viene eseguito il blocco di azioni corrispondente. Tutti i blocchi else if
o else
seguenti vengono ignorati. Se un'espressione condizionale restituisce false
, il blocco di azioni corrispondente viene ignorato. Qualsiasi condizione else if
seguente viene valutata. Se tutte le condizioni if
e else if
restituiscono false
, viene eseguito l'eventuale blocco else
.
In questo esempio viene verificato se un numero rientra in un intervallo di valori consentiti. Si vuole eseguire un'elaborazione specifica quando il numero è minore di zero, uguale a zero o maggiore di 512. Viene dichiarata la variabile booleana out_of_range
, ma il relativo valore viene impostato solo quando il programma immette l'espressione di test condizionale.
let num = 500; // num variable can be set at some point in the program
let out_of_range: bool;
if num < 0 {
out_of_range = true;
} else if num == 0 {
out_of_range = true;
} else if num > 512 {
out_of_range = true;
} else {
out_of_range = false;
}
Nei prossimi esercizi verranno usate le espressioni condizionali if
e else
.