Capítulo 03: Estrutura Condicional 🍃🍥

Neste capítulo, vamos aprender a fazer o programa tomar decisões usando a estrutura if e o poderoso match do Rust, com o tema Naruto!


📖 O que é Estrutura Condicional?

É quando o programa precisa testar uma condição e seguir caminhos diferentes dependendo do resultado.


📖 Exemplo Guiado: Teste Chunin

Vamos criar um programa que avalia se um ninja passou no teste escrito do Exame Chunin (precisa de nota 7 ou mais).

  1. Crie o arquivo teste_chunin.rs na pasta src/:
fn main() {
    let nota = 8.5; // Em Rust, a tipagem é inferida!
 
    println!("Nota do ninja: {}", nota);
 
    if nota >= 7.0 {
        println!("Aprovado! Voce esta pronto para a proxima fase.");
    } else {
        println!("Reprovado! Volte para a Academia Ninja.");
    }
}

🕹️ Como Executar e Testar no VS Code

  1. Abra le terminal integrado.
  2. Compile: rustc teste_chunin.rs
  3. Execute: ./teste_chunin

Resultado Esperado:

Nota do ninja: 8.5
Aprovado! Voce esta pronto para a proxima fase.

📖 Recurso Rust: O Poder do match

O Rust possui o match, que funciona como um switch super avançado. É ótimo para testar múltiplos valores!

let rank = 1;
match rank {
    1 => println!("Genin"),
    2 => println!("Chunin"),
    3 => println!("Jonin"),
    _ => println!("Rank desconhecido"), // O '_' serve como padrão (default)
}

📊 Ilustração Visual: Fluxo de Decisão

Veja como o programa decide qual caminho seguir:

graph TD
    A{"Nota >= 7.0?"} -->|Sim| B[Aprovado!]
    A -->|Não| C[Reprovado!]

🛠️ Prática Obrigatória 1: Classificação Ninja

Crie um programa chamado rank_ninja.rs que use uma variável com a quantidade de missões concluídas por um ninja e o classifique (use if ou match):

  • Menos de 10 missões: Genin
  • De 10 a 50 missões: Chunin
  • Mais de 50 missões: Jonin

🔑 Gabarito de Código

Prática 1: rank_ninja.rs

fn main() {
    let missoes = 25;
 
    println!("Missões concluídas: {}", missoes);
 
    if missoes < 10 {
        println!("Seu rank e: Genin");
    } else if missoes <= 50 {
        println!("Seu rank e: Chunin");
    } else {
        println!("Seu rank e: Jonin");
    }
}

Capitulo Anterior | Proximo Capitulo