Menu
Coddy logo textTech

Etichette dei cicli

Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 42 di 75.

Le etichette in Rust ti aiutano a interrompere o continuare cicli specifici quando sono annidati. Aggiungi 'label: prima di un ciclo per etichettarlo.

Per esempio:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;
            // This will break the outer loop
        }
        println!("({}, {})", i, j);
    }
}

In questo esempio, abbiamo due cicli annidati etichettati 'outer e 'inner. Quando il prodotto di i e j è maggiore di 5, viene eseguita l'istruzione break 'outer;, che esce dal ciclo esterno. L'output di questo codice sarà:

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

Allo stesso modo, puoi usare continue 'label; per passare all'iterazione successiva del ciclo specificato. Per esempio:

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;
            // This will continue the outer loop
        }
        println!("({}, {})", i, j);
    }
}

In questo caso, quando i è uguale a j, viene eseguita l’istruzione continue 'outer;, che salta il resto del ciclo interno e continua con l’iterazione successiva del ciclo esterno. L’output sarà:

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

Sfida

Principiante

Scrivi un programma Rust che utilizzi cicli etichettati per trovare la prima coppia di numeri (i, j) tale che la loro somma sia maggiore di 10 e il loro prodotto sia un multiplo di 12 (Il prodotto è divisibile per 12 senza resto).  Il programma dovrebbe scorrere i da 1 a 20 e j da 1 a 20.

Quando trovi la coppia, stampala nel formato (i, j) e interrompi il ciclo esterno.

Provalo tu

fn main() {
    'outer: for i in 1..=20 {
        for j in 1..=20 {
            // Your logic here
            
            
            break 'outer;
        }
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Rust online