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)Sfida
PrincipianteScrivi 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;
}
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online