Boucle infinie
Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 43 sur 75.
En Rust, des boucles infinies peuvent être créées en utilisant soit loop ou while true. Les deux s'exécutent jusqu'à ce qu'elles soient explicitement arrêtées avec break ou la fin du programme.
Par exemple :
loop {
// Code à exécuter de manière répétée
if condition {
break; // Quitter la boucle si la condition est remplie
}
}La boucle continue jusqu'à ce qu'elle atteigne un break. C'est utile pour les programmes qui doivent s'exécuter en continu, comme les serveurs ou les appareils.
Voici un exemple de boucle infinie qui affiche des nombres jusqu'à ce qu'une condition spécifique soit remplie :
let mut count = 0;
loop {
println!("Count: {}", count);
count += 1;
if count > 5 {
break;
// Quitter la boucle lorsque count est supérieur à 5
}
}Dans cet exemple, la boucle affichera les nombres de 0 à 5 puis s'arrêtera quand count deviendra 6.
Défi
DébutantÉcrivez un programme Rust qui simule un compteur simple. Le programme doit utiliser une boucle infinie pour incrémenter continuellement un compteur et afficher sa valeur. La boucle doit se terminer lorsque le compteur atteint une valeur spécifique déterminée par l'entrée.
Étapes pour le programme :
- Initialisez une variable mutable
counterà 0. - Utilisez une boucle infinie (
loop) pour incrémenter continuellement lecounterde 1 à chaque itération. - À l'intérieur de la boucle, affichez la valeur actuelle de
counter. - Vérifiez si
counterest égal à la valeur de terminaison fournie par l'utilisateur. Si c'est le cas, sortez de la boucle.
Aide-mémoire
Les boucles infinies en Rust peuvent être créées en utilisant loop ou while true. Elles s'exécutent jusqu'à ce qu'elles soient explicitement arrêtées avec break.
Syntaxe de base d'une boucle infinie :
loop {
// Code à exécuter de manière répétée
if condition {
break; // Quitter la boucle si la condition est remplie
}
}Exemple avec un compteur :
let mut count = 0;
loop {
println!("Count: {}", count);
count += 1;
if count > 5 {
break;
}
}Essayez vous-même
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let limit: i32 = input.trim().parse().unwrap();
let mut counter = 0;
// Écrivez votre code ci-dessous
}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
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Entrées/Sorties de base
Afficher dans la consoleLire la saisie utilisateurRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 33Variables - Partie 2
Déclaration de typeConventions de nommageInférence de typeRécapitulatif - Initialiser des variablesConversion de type9Boucles
Boucle For sur une sérieBoucle WhileBreakContinueBoucles imbriquéesÉtiquettes de boucleBoucle infinieRécapitulatif - Entrée dynamique12Bases des tableaux
Déclaration de tableauxTableau comme paramètreAccès aux élémentsModification de tableauxRécapitulatif - Affichage formaté d'un tableau15Opérations sur les chaînes
Méthodes de chaînesMacro format!Conversion de chaînesRécapitulatif - Format