🦀 Rust Modern Systems & WebAssembly

Rust 04: Kontrollfluss, Loops & Mächtiges match Pattern Matching

Nutze if als wertrückgebenden Ausdruck, meistere loop, while und for Schleifen und entfalte die Kraft des lückenlosen match Pattern Matchings mit Guards und Ranges.

💡 1. if/else als Ausdrücke (Expressions)

In Rust ist fast alles ein Ausdruck, der einen Wert zurückgibt. Deshalb kann if direkt Variablen initialisieren – ganz ohne ternären ? : Operator:

let is_authenticated = true;

// if als Ausdruck: Beide Zweige müssen denselben Datentyp liefern!
let access_level = if is_authenticated { 2 } else { 0 };

println!("Zugriffsstufe: {}", access_level);

🔁 2. Die drei Schleifentypen in Rust

1. loop

Endlosschleife, kann mit break value; Werte zurückgeben!

2. while

Bedingte Schleife: läuft solange die Condition true ist.

3. for in

Sichere Iteration über Ranges 0..10 oder Collections.

// loop mit Rückgabewert:
let mut counter = 0;
let result = loop {
    counter += 1;
    if counter == 10 {
        break counter * 2; // Liefert 20 zurück
    }
};

🎯 3. Das mächtige match Pattern Matching

match in Rust ist weitaus mächtiger als klassische switch-Anweisungen in C++/Java. Es erzwingt Vollständigkeit (Exhaustiveness) und unterstützt Ranges, Destructuring und Match Guards:

let score = 85;

let grade = match score {
    90..=100 => "A (Ausgezeichnet)",
    80..=89  => "B (Sehr gut)",
    70..=79  => "C (Befriedigend)",
    0..=69   => "D (Nicht bestanden)",
    _        => "Ungültiger Punktestand", // Catch-All Muster
};
🛡️ Match Guards für feingliedrige Logik

Mit pattern if condition => ... kannst du zusätzliche boolesche Bedingungen an ein Muster anheften, z. B. (role, level) if level <= 3 => true.

🎯 Aufgaben & Checkliste in aufgabe.rs

💻 In Web-IDE öffnen → Weiter zu Rust 05 (Lehrpfad 2) →