Menu
Coddy logo textTech

Erweiterte For-Schleife

Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 66 von 75.

Es gibt verschiedene Möglichkeiten, über ein Array zu iterieren, hier sind einige davon:

Betrachten Sie das folgende Array:

let numbers = [1, 2, 3, 4, 5];
  • Direkter Iterator:

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

    for (index, value) in numbers.iter().enumerate() { }
    // Werte: (0,1), (1,2), (2,3), (3,4), (4,5)
  • Slices einer bestimmten Größe:

    for chunk in numbers.chunks(2) { }
    // Werte: [1,2], [3,4], [5]
  • Iterieren mit Mutation:

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

Aufgabe

Einfach

Erstellen Sie ein Programm, das eine Einkaufsliste mit Artikeln und deren Preisen verarbeitet und verschiedene Ansichten der Daten bereitstellt.

Das Programm sollte:

  1. Jede Artikelnummer und jeden Preis ausgeben (unter Verwendung von enumerate)
  2. Die Preise paarweise (unter Verwendung von chunks) als "bundle deals" ausgeben
  3. Einen Rabatt von 10% auf alle Preise anwenden (unter Verwendung von iter_mut)
  4. Die endgültigen ermäßigten Preise ausgeben

Spickzettel

Verschiedene Möglichkeiten, über Arrays in Rust zu iterieren:

Direkter Iterator:

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

Index & Wert mit enumerate:

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

Slices einer bestimmten Größe mit chunks:

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

Iterieren mit Mutation unter Verwendung von iter_mut:

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

Probier es selbst

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

    println!("Original Prices:");
    // TODO: Verwende enumerate, um jede Artikelnummer und den Preis auszugeben
    // Erwartet: "Item 1: $2.99" usw.


    println!("\nBundle Deals:");
    // TODO: Verwende chunks, um Preispaare und deren Summen auszugeben
    // Erwartet: "Bundle 1: $2.99 + $1.50 = $4.49" usw.


    // TODO: Verwende iter_mut, um 10% Rabatt auf alle Preise anzuwenden


    println!("\nPrices after 10% discount:");
    // TODO: Endgültige Preise nach dem Rabatt ausgeben
    // Erwartet: "$2.69" usw.

}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals