Mini-Projeto: Simulador de Elevador 🏢
Neste projeto, vamos usar o poder do match e dos loops para controlar a lógica de um elevador em um prédio de 10 andares.
📋 Requisitos
- Estado do Elevador: Mantenha o andar atual em uma variável mutável.
- Match Exaustivo: Use
matchpara lidar com os comandos: "Sobe", "Desce" e "Sair". - Limite de Segurança: O elevador não deve subir acima do 10º andar nem descer abaixo do térreo (0).
- Loop Principal: O programa deve rodar continuamente até que o usuário escolha "Sair".
🚀 Guia de Execução
- Estrutura básica:
fn main() { let mut andar_atual = 0; loop { println!("--- Elevador (Andar: {}) ---", andar_atual); println!("Comandos: [s]obe, [d]esce, [q]uit"); // Simulação de entrada (em um projeto real usaríamos std::io) let comando = "s"; // Mude aqui para testar match comando { "s" => { if andar_atual < 10 { andar_atual += 1; println!("Subindo..."); } else { println!("Já estamos no topo!"); } }, "d" => { if andar_atual > 0 { andar_atual -= 1; println!("Descendo..."); } else { println!("Já estamos no térreo!"); } }, "q" => { println!("Desligando elevador..."); break; }, _ => println!("Comando inválido!"), } // Remova o break se estiver usando entrada real de teclado break; } }
✅ Critérios de Aceite
- [ ] O elevador respeita os limites (0 a 10).
- [ ] O
matchtrata todos os comandos e o caso padrão. - [ ] O loop é encerrado corretamente com o comando de saída.