O fluxo de controle em Cairo permite controlar o caminho de execução dos seus programas com base em condições e repetições.
Use expressões if para executar código com base em condições:
let number = 42;
if number > 0 {
println!("Positive number");
} else if number < 0 {
println!("Negative number");
} else {
println!("Zero");
}
if é uma expressão, então pode retornar valores:
let result = if condition { 5 } else { 10 };
Use loop para repetir código.
Um laço roda indefinidamente, a menos que você o pare; use break para sair do laço quando uma condição for satisfeita.
let mut counter = 0;
loop {
if counter == 5 {
break;
}
println!("Counter: {}", counter);
counter += 1;
}
Os laços podem retornar valores usando break:
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Returns 20
}
};
Use continue para pular para a próxima iteração:
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
}
Neste exercício, você vai ajudar a gerenciar as operações diárias de uma pequena padaria usando as estruturas de fluxo de controle de Cairo.
Implemente calculate_total, que calcula o custo de um pedido com base no tipo de doce e na quantidade:
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10) // Returns: 10 (10 * 1)
Implemente apply_discount, que aplica descontos com base no total do pedido.
Aplique o desconto percentual ao total e depois arredonde para baixo até a moeda inteira mais próxima (floor).
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8) // Returns: 8
Implemente baking_schedule, que cria um plano diário de fornadas.
A padaria assa em lotes de 5 pedidos por hora:
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)
Use as estruturas de fluxo de controle adequadas (if/else, loop) para resolver cada problema com eficiência.
Crie sua conta no Exercism para aprender e dominar Cairo com 25 conceitos68 exercícios e mentoria humana de verdade, tudo de graça.