Il flusso di controllo in Cairo ti permette di controllare il percorso di esecuzione dei tuoi programmi in base a condizioni e ripetizioni.
Usa le espressioni if per eseguire del codice in base a delle condizioni:
let number = 42;
if number > 0 {
println!("Positive number");
} else if number < 0 {
println!("Negative number");
} else {
println!("Zero");
}
if è un'espressione, quindi può restituire dei valori:
let result = if condition { 5 } else { 10 };
Usa loop per ripetere del codice.
Un ciclo viene eseguito all'infinito, a meno che tu non lo fermi; usa break per uscire dal ciclo quando una condizione è soddisfatta.
let mut counter = 0;
loop {
if counter == 5 {
break;
}
println!("Counter: {}", counter);
counter += 1;
}
I cicli possono restituire dei valori usando break:
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Returns 20
}
};
Usa continue per passare all'iterazione successiva:
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
}
In questo esercizio aiuterai a gestire le attività quotidiane di una piccola panetteria usando i costrutti di controllo di Cairo.
Implementa calculate_total, che calcola il costo di un ordine in base al tipo di dolce e alla quantità:
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10) // Returns: 10 (10 * 1)
Implementa apply_discount, che applica gli sconti in base al totale dell'ordine.
Applica lo sconto percentuale al totale, poi arrotonda per difetto alla moneta intera più vicina (floor).
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8) // Returns: 8
Implementa baking_schedule, che crea un piano di cottura giornaliero.
La panetteria cuoce in lotti di 5 ordini all'ora:
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)
Usa i costrutti di controllo appropriati (if/else, loop) per risolvere ogni problema in modo efficiente.
Iscriviti a Exercism per imparare e padroneggiare Cairo con 25 concetti68 esercizi e il mentoring di persone reali, tutto gratis.