</>
Plan du cours — 7/66

Contrôle de flux

Débutant

if, match et les blocs sont des expressions : ils renvoient une valeur.

let label = if age >= 18 { "majeur" } else { "mineur" };

// Boucles
for i in 0..5 { println!("{i}"); }        // 0 à 4
for i in 0..=5 { println!("{i}"); }       // 0 à 5
for element in &jours { println!("{element}"); }

let mut n = 0;
while n < 3 { n += 1; }

let resultat = loop {                     // boucle infinie qui renvoie une valeur
    n += 1;
    if n == 10 { break n * 2; }
};
// match : exhaustif, le compilateur vérifie que tous les cas sont couverts
match n {
    0 => println!("zéro"),
    1 | 2 => println!("un ou deux"),
    3..=9 => println!("petit"),
    x if x % 2 == 0 => println!("pair : {x}"),
    _ => println!("autre"),
}

Cas pratique : FizzBuzz idiomatique.

for i in 1..=15 {
    match (i % 3, i % 5) {
        (0, 0) => println!("FizzBuzz"),
        (0, _) => println!("Fizz"),
        (_, 0) => println!("Buzz"),
        _ => println!("{i}"),
    }
}