Controllo del flusso
Espressioni condizionali
Come in ogni linguaggio di programmazione, Rust supporta l'esecuzione condizionale di codice sulla base di una condizione.
fn main() { let x = 4; if x > 5 { println!("x è maggiore di 5"); } else { println!{"x è minore o uguale di 5"}; } }
Compilando ed eseguendo il codice sopra otteniamo il risultato
x è minore o uguale di 5
Il tipo di una condizione deve essere necessariamente un booleano, a differenza di altri linguaggi come javascript o Python che convertono implicitamente i valori a booleani.
Possiamo avere anche catene di condizioni tramite il costrutto else if
fn main() { let x = 4; if x > 5 { println!("x è maggiore di 5"); } else if x > 3 { println!{"x è minore o uguale di 5 ma maggiore di 3"}; } else { println!{"x è minore o uguale di 3"}; } }
Eseguendo il codice sopra otteniamo questo risultato
x è minore o uguale di 5 ma maggiore di 3
Cicli
Il costrutto loop permette di creare un ciclo infinito in Rust:
fn main() { loop { println!("loop!"); } }
Se proviamo a eseguire questo programma vedremo che verrà stampata la stringa loop! all'infinito, o almeno fino a che non terminiamo il programma in maniera esplicita.
$ cargo run
Compiling loops v0.1.0 (./projects/loops)
Finished dev [unoptimized + debuginfo] target(s) in 0.11s
Running `target/debug/loops`
loop!
loop!
loop!
...
Possiamo interrompere un ciclo tramite la parola chiave break.
fn main() { let mut i = 0; loop { if i == 4 { break; } println!("loop {i}"); i += 1; } }
Eseguendo il programma vediamo che alla quarta iterazione il loop viene interrotto.
loop 0
loop 1
loop 2
loop 3
Fine del loop
Il ciclo sopra può essere trasformato in un ciclo while, che si comporta come in molti altri linguaggi.
fn main() { let mut i = 0; while i <= 4 { println!("loop {i}"); i += 1; } }
Possiamo anche usare il costrutto for per iterare su i membri di una collezione, come ad esempio un array.
fn main() { let arr = [1, 2, 3, 4, 5]; for x in arr { println!("il valore è {}", x); } }
Il risultato del programma è quello che ci aspettiamo, ovvero
il valore è 1
il valore è 2
il valore è 3
il valore è 4
il valore è 5