Menu
Coddy logo textTech

Étiquettes de boucle

Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 42 sur 75.

Les étiquettes (labels) en Rust vous aident à interrompre ou à continuer des boucles spécifiques lorsqu'elles sont imbriquées. Ajoutez 'label: avant une boucle pour l'étiqueter.

Par exemple :

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;
            // Cela interrompra la boucle externe
        }
        println!("({}, {})", i, j);
    }
}

Dans cet exemple, nous avons deux boucles imbriquées étiquetées 'outer et 'inner. Lorsque le produit de i et j est supérieur à 5, l'instruction break 'outer; est exécutée, ce qui interrompt la boucle externe. La sortie de ce code sera :

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

De même, vous pouvez utiliser continue 'label; pour passer à l'itération suivante de la boucle spécifiée. Par exemple :

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;
            // Cela continuera la boucle externe
        }
        println!("({}, {})", i, j);
    }
}

Dans ce cas, lorsque i est égal à j, l'instruction continue 'outer; est exécutée, ce qui ignore le reste de la boucle interne et continue avec l'itération suivante de la boucle externe. La sortie sera :

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

Défi

Débutant

Écrivez un programme Rust qui utilise des boucles étiquetées pour trouver la première paire de nombres (i, j) telle que leur somme soit supérieure à 10 et leur produit soit un multiple de 12 (le produit est divisible par 12 sans reste).  Le programme doit itérer à travers i de 1 à 20 et j de 1 à 20.

Lorsque vous trouvez la paire, affichez-la au format (i, j) et sortez de la boucle externe (outer loop).

Aide-mémoire

Les étiquettes (labels) en Rust vous aident à interrompre (break) ou à continuer (continue) des boucles spécifiques lorsqu'elles sont imbriquées. Ajoutez 'label: avant une boucle pour l'étiqueter.

Utilisez break 'label; pour quitter une boucle étiquetée spécifique :

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i * j > 5 {
            break 'outer;  // Interrompt la boucle extérieure
        }
        println!("({}, {})", i, j);
    }
}

Utilisez continue 'label; pour passer à l'itération suivante d'une boucle étiquetée spécifique :

'outer: for i in 1..=3 {
    'inner: for j in 1..=3 {
        if i == j {
            continue 'outer;  // Continue la boucle extérieure
        }
        println!("({}, {})", i, j);
    }
}

Essayez vous-même

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

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fundamentals