Rust Controllo del ciclo


Esempio

Tutti i costrutti di ciclo consentono l'uso di istruzioni break e continue . Influiscono sul ciclo immediatamente circostante (più interno).

Basic Loop Control

break termina il ciclo:

for x in 0..5 {
    if x > 2 { break; }
    println!("{}", x);
}
Produzione
0
1
2

continue termina l'iterazione corrente in anticipo

for x in 0..5 {
    if x < 2 { continue; }
    println!("{}", x);
}
Produzione
2
3
4

Controllo avanzato del ciclo

Ora, supponiamo di avere cicli annidati e vogliamo break verso il ciclo esterno. Quindi, possiamo usare le etichette di loop per specificare a quale ciclo si applica una break o continue . Nell'esempio seguente, 'outer è l'etichetta data al loop esterno.

'outer: for i in 0..4 {
    for j in i..i+2 {
        println!("{} {}", i, j);
        if i > 1 {
            continue 'outer;
        }
    }
    println!("--");
}
Produzione
0 0
0 1
--
1 1
1 2
--
2 2
3 3

Per i > 1 , il ciclo interno è stato iterato una sola volta e -- non è stato stampato.


Nota: non confondere un'etichetta di loop con una variabile a vita. Le variabili a vita si verificano solo accanto a un & o come parametro generico all'interno di <> .