Capítulo 04: Estruturas Repetitivas 🍄⭐
Neste capítulo, vamos aprender a repetir blocos de código usando os laços while e for do Rust, com o tema Super Mario!
📖 O que são Estruturas Repetitivas?
Servem para executar o mesmo bloco de código várias vezes. No Rust, temos o while, o for e o loop (laço infinito).
📖 Exemplo Guiado: Coleta de Moedas
Vamos criar um programa que simula o Mario coletando moedas até atingir o limite de 5 moedas usando o laço while.
- Crie o arquivo
coleta_moedas.rsna pastasrc/:
fn main() {
let mut moedas = 0; // Precisa ser mutável!
while moedas < 5 {
moedas += 1;
println!("Mario coletou uma moeda! Total: {}", moedas);
}
println!("Parabens! Voce completou a fase!");
}🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Compile:
rustc coleta_moedas.rs - Execute:
./coleta_moedas
Resultado Esperado:
Mario coletou uma moeda! Total: 1
Mario coletou uma moeda! Total: 2
Mario coletou uma moeda! Total: 3
Mario coletou uma moeda! Total: 4
Mario coletou uma moeda! Total: 5
Parabens! Voce completou a fase!📖 Recurso Rust: O Laço for com Intervalos
Em Rust, o for é muito usado com intervalos (ranges). Veja como fazer uma contagem de 1 a 5:
for i in 1..=5 { // O '=5' significa que inclui o número 5
println!("Contagem: {}", i);
}📊 Ilustração Visual: Fluxo do Laço
Veja como o loop se comporta:
graph TD A{"Moedas < 5?"} -->|Sim| B[Coletar Moeda] B --> C[Aumentar Contador] C --> A A -->|Não| D[Fim da Fase]
🛠️ Prática Obrigatória 1: Contagem Regressiva
Crie um programa chamado contagem_bomba.rs que faça uma contagem regressiva de 5 até 1 (usando o laço for e invertendo o intervalo) para simular o tempo de explosão de uma bomba do Bob-omb.
- Dica: Para inverter um intervalo em Rust, use
(1..=5).rev().
🔑 Gabarito de Código
Prática 1: contagem_bomba.rs
fn main() {
println!("Bob-omb vai explodir!");
// O .rev() inverte a ordem do intervalo
for i in (1..=5).rev() {
println!("{} ...", i);
}
println!("💥 CABUM!");
}