Les boucles en tant qu'expressions
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 5 sur 66.
Dans la plupart des langages de programmation, les boucles sont des instructions qui exécutent du code de manière répétée. Mais Rust possède une fonctionnalité unique : les boucles peuvent également être des expressions qui renvoient une valeur. Cela signifie que vous pouvez assigner le résultat d'une boucle à une variable.
Pour retourner une valeur depuis une boucle, vous utilisez break suivi de la valeur que vous souhaitez retourner :
let result = loop {
// une vérification de condition
if condition_met {
break 42; // quitter la boucle et retourner 42
}
};Voici un exemple pratique qui trouve le premier nombre pair à partir de 10 :
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // retourne le nombre pair
}
counter += 1;
};
println!("First even number: {}", first_even);La boucle continue jusqu'à ce qu'elle trouve un nombre pair, puis utilise break counter pour quitter la boucle et renvoyer ce nombre. La valeur renvoyée est assignée à first_even.
Défi
FacileVous recevrez un nombre de départ en entrée. Lisez l'entrée, convertissez-la en un entier, et utilisez une expression loop pour trouver le premier nombre divisible par 7 en commençant par ce nombre.
Exigences :
- Utilisez une expression
loopqui retourne une valeur - Commencez la vérification à partir du nombre saisi
- Trouvez le premier nombre divisible par 7 (le reste est 0 lorsqu'il est divisé par 7)
- Utilisez
breakpour retourner le nombre trouvé depuis la boucle - Affichez le résultat
Entrée : Un seul entier représentant le nombre de départ
Sortie : Affichez le premier nombre divisible par 7 en commençant par le nombre saisi
Aide-mémoire
En Rust, les boucles peuvent être des expressions qui retournent une valeur. Utilisez break suivi d'une valeur pour quitter la boucle et retourner cette valeur :
let result = loop {
if condition_met {
break 42; // quitter la boucle et retourner 42
}
};Exemple pour trouver le premier nombre pair :
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // retourner le nombre pair
}
counter += 1;
};
println!("First even number: {}", first_even);Essayez vous-même
use std::io;
fn main() {
// Lire l'entrée
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let start_number: i32 = input.trim().parse().expect("Invalid input");
// TODO: Écrivez votre code ci-dessous
// Utilisez une expression de boucle pour trouver le premier nombre divisible par 7
// Afficher le résultat
// println!("{}", result);
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final