Flot de contrôle
if
La construction syntaxique if est une expression permettant d’exécuter une
branche de code selon une certaine condition:
fn main() {
let number = 6;
if number % 4 == 0 {
println!("number is divisible by 4");
} else if number % 3 == 0 {
println!("number is divisible by 3");
} else if number % 2 == 0 {
println!("number is divisible by 2");
} else {
println!("number is not divisible by 4, 3, or 2");
}
}
La construction if étant une expression, elle peut-être notamment être
utilisée dans une instruction let:
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {number}");
}
Boucles
Plusieurs constructions de boucles peuvent être utilisées en Rust.
loop
L’expression loop permet de créer des boucles infinie:
fn main() {
loop {
println!("again!");
}
}
Une boucle peut être interrompue avec le mot-clef break qui permet de renvoyer
une valeur éventuelle:
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};
println!("The result is {result}");
}
Une boucle peut-être identifiée par un label avec la syntaxe 'label pour
déterminer sur quelle boucle le break doit agir (ce dernier peut
éventuellement également retourner une
valeur):
fn main() {
let mut count = 0;
'counting_up: loop {
println!("count = {count}");
let mut remaining = 10;
loop {
println!("remaining = {remaining}");
if remaining == 9 {
break;
}
if count == 2 {
break 'counting_up;
}
remaining -= 1;
}
count += 1;
}
println!("End count = {count}");
}
while
La construction while permet d’exécuter du code tant qu’une condition est
vraie:
fn main() {
let mut number = 3;
while number != 0 {
println!("{number}!");
number -= 1;
}
println!("LIFTOFF!!!");
}
for
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a {
println!("the value is: {element}");
}
}
fn main() {
for number in (1..4).rev() {
println!("{number}!");
}
println!("LIFTOFF!!!");
}