Menu
Coddy logo textTech

Etiquetas de bucle

Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 42 de 75.

Las etiquetas en Rust te ayudan a interrumpir o continuar bucles específicos cuando están anidados. Añade 'label: antes de un bucle para etiquetarlo.

Por ejemplo:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;
            // Esto romperá el bucle exterior
        }
        println!("({}, {})", i, j);
    }
}

En este ejemplo, tenemos dos bucles anidados etiquetados como 'outer y 'inner. Cuando el producto de i y j es mayor que 5, la sentencia break 'outer; se ejecuta, lo que sale del bucle externo. La salida de este código será:

(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)

De manera similar, puedes usar continue 'label; para continuar con la siguiente iteración del bucle especificado. Por ejemplo:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;
            // Esto continuará el bucle exterior
        }
        println!("({}, {})", i, j);
    }
}

En este caso, cuando i es igual a j, la sentencia continue 'outer; se ejecuta, lo cual omite el resto del bucle interno y continúa con la siguiente iteración del bucle externo. La salida será:

(2, 1)
(3, 1)
(3, 2)
challenge icon

Desafío

Principiante

Escribe un programa en Rust que utilice bucles etiquetados para encontrar el primer par de números (i, j) tales que su suma sea mayor que 10 y su producto sea un múltiplo de 12 (el producto se divide por 12 sin resto).  El programa debe iterar a través de i del 1 al 20 y j del 1 al 20.

Cuando encuentres el par, imprímelo en el formato (i, j) y sal del bucle exterior.

Hoja de referencia

Las etiquetas en Rust te ayudan a romper (break) o continuar (continue) bucles específicos cuando están anidados. Añade 'label: antes de un bucle para etiquetarlo.

Usa break 'label; para salir de un bucle etiquetado específico:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;  // Rompe el bucle exterior
        }
        println!("({}, {})", i, j);
    }
}

Usa continue 'label; para continuar con la siguiente iteración de un bucle etiquetado específico:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;  // Continúa el bucle exterior
        }
        println!("({}, {})", i, j);
    }
}

Pruébalo tú mismo

fn main() {
    'outer: for i in 1..=20 {
        for j in 1..=20 {
            // Your logic here
            
            
            break 'outer;
        }
    }
}
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 Fundamentals