Menu
Coddy logo textTech

Boucle for améliorée

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

Il existe différentes manières d'itérer sur un tableau, en voici quelques-unes :

Considérez le tableau suivant :

let numbers = [1, 2, 3, 4, 5];
  • Itérateur direct :

    for num in numbers.iter() {}
    // Valeurs : 1, 2, 3, 4, 5
  • Index & Valeur :

    for (index, value) in numbers.iter().enumerate() { }
    // Valeurs : (0,1), (1,2), (2,3), (3,4), (4,5)
  • Tranches de taille spécifique :

    for chunk in numbers.chunks(2) { }
    // Valeurs : [1,2], [3,4], [5]
  • Itérer avec mutation :

    for num in numbers.iter_mut() { 
    	*num *= 2;
    }
    // Le tableau devient : [2, 4, 6, 8, 10]
challenge icon

Défi

Facile

Créez un programme qui traite une liste de courses avec des articles et leurs prix, et fournit différentes vues des données.

Le programme doit :

  1. Afficher chaque numéro d'article et son prix (en utilisant enumerate)
  2. Afficher les prix par paires (en utilisant chunks) en tant que "bundle deals"
  3. Appliquer une remise de 10 % à tous les prix (en utilisant iter_mut)
  4. Afficher les prix finaux après remise

Aide-mémoire

Différentes façons d'itérer sur des tableaux en Rust :

Itérateur direct :

for num in numbers.iter() {}
// Valeurs : 1, 2, 3, 4, 5

Index et valeur avec enumerate :

for (index, value) in numbers.iter().enumerate() { }
// Valeurs : (0,1), (1,2), (2,3), (3,4), (4,5)

Tranches de taille spécifique avec chunks :

for chunk in numbers.chunks(2) { }
// Valeurs : [1,2], [3,4], [5]

Itérer avec mutation en utilisant iter_mut :

for num in numbers.iter_mut() { 
    *num *= 2;
}
// Le tableau devient : [2, 4, 6, 8, 10]

Essayez vous-même

fn main() {
    let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];

    println!("Original Prices:");
    // TODO: Utiliser enumerate pour afficher chaque numéro d'article et son prix
    // Attendu : "Item 1: $2.99" etc.


    println!("\nBundle Deals:");
    // TODO: Utiliser chunks pour afficher des paires de prix et leurs sommes
    // Attendu : "Bundle 1: $2.99 + $1.50 = $4.49" etc.


    // TODO: Utiliser iter_mut pour appliquer une remise de 10 % à tous les prix


    println!("\nPrices after 10% discount:");
    // TODO: Afficher les prix finaux après la remise
    // Attendu : "$2.69" etc.

}
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