Capítulo 02: Estrutura Sequencial e Mutabilidade ⛏️🟩

Neste capítulo, vamos aprender a realizar cálculos matemáticos e a lidar com a imutabilidade do Rust, usando o universo do Minecraft como tema!


📖 O que é Estrutura Sequencial?

É aquela em que as instruções são executadas uma após a outra, de cima para baixo.


📖 Recurso Rust: Mutabilidade

No Rust, por padrão, todas as variáveis são imutáveis (você não pode mudar o valor delas depois de criadas). Para permitir que um valor mude, precisamos usar a palavra-chave mut!


📖 Exemplo Guiado: Calculadora de Recursos

Vamos criar um programa que calcula quantos blocos de madeira precisamos para fazer uma quantidade de tábuas.

  1. Crie o arquivo calculadora_recursos.rs na pasta src/:
use std::io;
 
fn main() {
    // Precisamos de 'mut' porque o valor vai ser preenchido pelo usuário!
    let mut madeira_bruta = String::new();
 
    println!("Quantos blocos de madeira bruta voce coletou? ");
    
    // Lendo a entrada do teclado
    io::stdin()
        .read_line(&mut madeira_bruta)
        .expect("Falha ao ler a linha");
 
    // Convertendo texto para número
    let madeira_bruta: i32 = madeira_bruta
        .trim()
        .parse()
        .expect("Por favor, digite um numero!");
 
    let tabuas = madeira_bruta * 4;
 
    println!("Voce pode fazer {} tabuas de madeira!", tabuas);
}

🕹️ Como Executar e Testar no VS Code

  1. Abra o terminal integrado.
  2. Compile: rustc calculadora_recursos.rs
  3. Execute: ./calculadora_recursos
  4. Digite 5 e pressione Enter.

Resultado Esperado:

Quantos blocos de madeira bruta voce coletou? 5
Voce pode fazer 20 tabuas de madeira!

📊 Ilustração Visual: Fluxo Sequencial

Veja como os dados fluem pelo programa:

graph LR
    A["📥 Entrada: Madeira Bruta"] --> B["⚙️ Processamento: Multiplicar por 4"]
    B --> C["📤 Saída: Tábuas de Madeira"]

🛠️ Prática Obrigatória 1: Estoque de Esmeraldas

Um aldeão quer trocar esmeraldas por pães. Cada pão custa 3 esmeraldas. Crie um programa chamado troca_aldeao.rs que pergunte quantos pães o jogador quer (pode deixar o valor fixo no código primeiro para simplificar, ou ler do teclado se quiser o desafio!) e calcule o total de esmeraldas necessárias.


🔑 Gabarito de Código

Prática 1: troca_aldeao.rs (Com valor fixo para simplificar)

fn main() {
    let paes = 5; // Valor fixo
    let esmeraldas = paes * 3;
 
    println!("Quantos paes voce deseja comprar? {}", paes);
    println!("Total de esmeraldas necessarias: {}", esmeraldas);
}

Capitulo Anterior | Proximo Capitulo