Menu
Coddy logo textTech

Loops como Expressões

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 5 de 66.

Na maioria das linguagens de programação, os loops são instruções que executam código repetidamente. Mas o Rust tem um recurso único: os loops também podem ser expressões que retornam um valor. Isso significa que você pode atribuir o resultado de um loop a uma variável.

Para retornar um valor de um loop, você usa break seguido pelo valor que você deseja retornar:

let result = loop {
    // alguma verificação de condição
    if condition_met {
        break 42; // sai do loop e retorna 42
    }
};

Aqui está um exemplo prático que encontra o primeiro número par começando a partir de 10:

let mut counter = 10;

let first_even = loop {
    if counter % 2 == 0 {
        break counter; // retorna o número par
    }
    counter += 1;
};

println!("First even number: {}", first_even);

O loop continua até encontrar um número par, então usa break counter para sair do loop e retornar esse número. O valor retornado é atribuído a first_even.

challenge icon

Desafio

Fácil

Você receberá um número inicial como entrada. Leia a entrada, converta-a para um número inteiro e use um loop como uma expressão para encontrar o primeiro número divisível por 7 a partir desse número.

Requisitos:

  • Use uma expressão loop que retorne um valor
  • Comece a verificação a partir do número de entrada
  • Encontre o primeiro número que seja divisível por 7 (o resto é 0 quando dividido por 7)
  • Use break para retornar o número encontrado a partir do loop
  • Imprima o resultado

Entrada: Um único número inteiro representando o número inicial

Saída: Imprima o primeiro número divisível por 7 a partir do número de entrada

Folha de consulta

Em Rust, loops podem ser expressões que retornam um valor. Use break seguido por um valor para sair do loop e retornar esse valor:

let result = loop {
    if condition_met {
        break 42; // sai do loop e retorna 42
    }
};

Exemplo encontrando o primeiro número par:

let mut counter = 10;

let first_even = loop {
    if counter % 2 == 0 {
        break counter; // retorna o número par
    }
    counter += 1;
};

println!("First even number: {}", first_even);

Experimente você mesmo

use std::io;

fn main() {
    // Ler entrada
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let start_number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO: Escreva seu código abaixo
    // Use uma expressão de loop para encontrar o primeiro número divisível por 7
    
    
    // Imprimir o resultado
    // println!("{}", result);
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Logic & Flow