Le flux de contrôle en Cairo permet de contrôler le chemin d'exécution des programmes en fonction de conditions et de répétitions.
Utilise des expressions if pour exécuter du code en fonction de conditions :
let number = 42;
if number > 0 {
println!("Positive number");
} else if number < 0 {
println!("Negative number");
} else {
println!("Zero");
}
if est une expression, elle peut donc renvoyer des valeurs :
let result = if condition { 5 } else { 10 };
Utilise loop pour répéter du code.
Une boucle s'exécute indéfiniment tant que tu ne l'arrêtes pas ; utilise break pour sortir de la boucle quand une condition est remplie.
let mut counter = 0;
loop {
if counter == 5 {
break;
}
println!("Counter: {}", counter);
counter += 1;
}
Les boucles peuvent renvoyer des valeurs avec break :
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Returns 20
}
};
Utilise continue pour passer à l'itération suivante :
let mut i = 0;
loop {
i += 1;
if i % 2 == 0 {
continue; // Skip even numbers
}
if i > 10 {
break;
}
println!("{}", i); // Only prints odd numbers
}
Dans cet exercice, tu vas aider à gérer le quotidien d'une petite boulangerie grâce aux structures de contrôle de Cairo.
Implémente calculate_total, qui calcule le coût d'une commande en fonction du type de pâtisserie et de sa quantité :
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10) // Returns: 10 (10 * 1)
Implémente apply_discount, qui applique des remises en fonction du total de la commande.
Applique la remise en pourcentage au total, puis arrondis à la pièce entière inférieure (floor).
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8) // Returns: 8
Implémente baking_schedule, qui crée un planning de cuisson quotidien.
La boulangerie cuit par lots de 5 commandes par heure :
baking_schedule(18) // Returns: [5, 5, 5, 3] (3 full batches + 3 remaining)
baking_schedule(10) // Returns: [5, 5] (2 full batches)
baking_schedule(3) // Returns: [3] (1 partial batch)
Utilise les structures de contrôle adaptées (if/else, loop) pour résoudre efficacement chaque problème.
Inscris-toi sur Exercism pour apprendre et maîtriser Cairo avec 25 concepts68 exercices, et un vrai mentorat humain, le tout gratuitement.