O fluxo de controlo em Cairo permite-te controlar o caminho de execução dos teus programas com base em condições e repetição.
Usa 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, por isso pode devolver valores:
let result = if condition { 5 } else { 10 };
Usa loop para repetir código.
Um ciclo corre indefinidamente a menos que o pares; usa break para sair do ciclo quando uma condição se verifica.
let mut counter = 0;
loop {
if counter == 5 {
break;
}
println!("Counter: {}", counter);
counter += 1;
}
Os ciclos podem devolver valores com break:
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Returns 20
}
};
Usa continue para saltar para a iteração seguinte:
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 vais ajudar a gerir as operações diárias de uma pequena pastelaria, usando as estruturas de controlo de fluxo de Cairo.
Implementa calculate_total, que calcula o custo de uma encomenda com base no tipo de pastelaria e na quantidade:
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10) // Returns: 10 (10 * 1)
Implementa apply_discount, que aplica descontos com base no total da encomenda.
Aplica a percentagem de desconto ao total e arredonda depois para baixo, para o número inteiro de moedas mais próximo (floor).
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8) // Returns: 8
Implementa baking_schedule, que cria um plano diário de cozedura.
A pastelaria coze em lotes de 5 encomendas 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)
Usa as estruturas de controlo de fluxo adequadas (if/else, loop) para resolveres cada problema de forma eficiente.
Inscreve-te no Exercism para aprenderes e dominares Cairo com 25 conceitos68 exercícios, e mentoria humana real, tudo grátis.