Menu
Coddy logo textTech

Bucles como expresiones

Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 5 de 66.

En la mayoría de los lenguajes de programación, los bucles son sentencias que ejecutan código repetidamente. Pero Rust tiene una característica única: los bucles también pueden ser expresiones que devuelven un valor. Esto significa que puedes asignar el resultado de un bucle a una variable.

Para devolver un valor desde un bucle, utiliza break seguido del valor que deseas devolver:

let result = loop {
    // alguna comprobación de condición
    if condition_met {
        break 42; // salir del bucle y devolver 42
    }
};

Aquí tienes un ejemplo práctico que encuentra el primer número par empezando desde 10:

let mut counter = 10;

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

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

El bucle continúa hasta que encuentra un número par, luego utiliza break counter para salir del bucle y devolver ese número. El valor devuelto se asigna a first_even.

challenge icon

Desafío

Fácil

Recibirás un número inicial como entrada. Lee la entrada, conviértela en un entero y utiliza un bucle como expresión para encontrar el primer número divisible por 7 empezando desde ese número.

Requisitos:

  • Usa una expresión loop que devuelva un valor
  • Empieza a comprobar desde el número de entrada
  • Encuentra el primer número que sea divisible por 7 (el resto es 0 al dividir por 7)
  • Usa break para devolver el número encontrado desde el bucle
  • Imprime el resultado

Entrada: Un único entero que representa el número inicial

Salida: Imprime el primer número divisible por 7 empezando desde el número de entrada

Hoja de referencia

En Rust, los bucles pueden ser expresiones que devuelven un valor. Usa break seguido de un valor para salir del bucle y devolver ese valor:

let result = loop {
    if condition_met {
        break 42; // salir del bucle y devolver 42
    }
};

Ejemplo para encontrar el primer número par:

let mut counter = 10;

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

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

Pruébalo tú mismo

use std::io;

fn main() {
    // Leer la 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: Escribe tu código a continuación
    // Usa una expresión de bucle para encontrar el primer número divisible por 7
    
    
    // Imprimir el resultado
    // println!("{}", result);
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow