Bucles en Rust
SOLUCIONARIO
Bucles en Rust
2025-06-01
Por
Occam's Razor

fn main()
{
    let mut a = vec![0;10];

    for j in 0..10 { a[j] = j + 10; }

    let mut i : usize = 0;
    while i < 10 {
        println! ("{} -> {} ", i, a[i]);
        i += 1;
    }
    println!("--------------------------------------");
    loop {
        i -= 1;
        print! ("{} -> {}", i, a[i]);
        if i > 4 { println!(); continue;}
        println!("**");
        if i <= 0 { break;} 
    }   
    println!("--------------------------------------");
    for i in a {print! ("{} ", i);} println! ();
}

Rust, como la mayoría de lenguajes nos ofrece bucles for y while. Los bucles for sigue el formato de la construcción foreach que encontramos en otros lenguajes, en lugar de la versión comprimida de while de lenguajes como C o Java.

SOY NOVATO

Al igual que otros muchos lenguajes Rust ofrece un operador de rango con el que generar secuencias de números consecutivos utilizando la sintáxis 0..10 o (std::ops::Range{start:0, end:10}). Observa el uso de las llaves (Range es una structura) y los paréntesis si queréis usar esta expresión tan larga en vuestros bucles for.

Las instrucciones break y continue también están presentes con la función habitual. Ambas instrucciones pueden recibir como parámetro una etiqueta para indicar el ciclo del bucle que queremos repetir (continue) o que bucle queremos terminar (break). El fragmento de código siguiente muestra un ejemplo utilizando continue sacado de la documentación original en linea:

'exterior: for x in 0..10 {
    'interior: for y in 0..10 {
        if x % 2 == 0 { continue 'exterior; } // Continua el bucle sobre `x`.
        if y % 2 == 0 { continue 'interior; } // Continua el bucle sobre `y`.
        println!("x: {}, y: {}", x, y);
    }
}

Rust, ofrece una instrucción para definir bucles infinitos llamada loop.

SABÍAS QUE?

Rust incorporó la palabra clave loop desde el principio, sin embargo la posibilidad de retornar un valor con break fue añadida al lenguaje con posterioridad

Un bucle infinito se repetirá indefinidamente o hasta que el bucle se pare internamente con una instrucción break. Cuando el bucle infinito se termina con break, Rust nos permite retornar un cierto valor.

let mut a = 1
let result = loop {
    if a > 5 {break a;}
    a+=1;
};
println!("Resultado: {}", result);  

Esta es realmente la única forma de implementar un bucle infinito en Rust. Es posible utilizar while true pero el compilador emitirá un warning.

Resumen

  • Rust ofrece bucles for, while. Los bucles for pueden utilizarse con elementos iterables
  • Rust ofrece las palabras clave continue y break para controlar el flujo de ejecución de los bucles. Ambas palabras clave aceptan una etiqueta como parámetro.
  • Rust ofrece una palabra clave especial para implementar bucles infinitos loop.

SOBRE Occam's Razor
Somos una revista libre que intenta explicar de forma sencilla conceptos tecnológicos y científicos de los que no podemos escapar. Al final, todo es más fácil de lo que parece!

 
Tu publicidad aquí :)