Direct naar de hoofdinhoud
Module 2 · Les 1 van 23/14 in de cursus~12 min
Modulelessen (1/2)

Voorwaardelijke regels en lussen

De controlestroom in Rust draait om twee hoofdconstructies: voorwaardelijke expressies om te beslissen welk uitvoeringspad moet worden gevolgd, en lusconstructies om instructies te herhalen.

Voorwaardelijke waarden: if als expressie

In Rust is de instructie if een expressie, wat betekent dat deze een waarde retourneert. We kunnen if gebruiken om direct een waarde aan een variabele toe te wijzen:

Rust
let condition = true;
let number = if condition { 5 } else { 6 }; // if/else as an expression

Lussen en iteraties

Rust biedt drie soorten native loops: loop, while en for.

1. loop (Oneindige lus)

Het sleutelwoord loop creëert een oneindige lus die doorgaat totdat je expliciet zegt dat hij moet stoppen met het gebruik van break:

Rust
let mut count = 0;
loop {
    count += 1;
    if count == 10 {
        break; // Exit the loop
    }
}

Bovendien kunt u een waarde uit een loop retourneren door deze direct na break te plaatsen:

Rust
let result = loop {
    count += 1;
    if count == 10 {
        break count * 2; // Returns 20
    }
};

2. while (voorwaardelijke lus)

Voert een codeblok uit zolang een Booleaanse voorwaarde waar blijft:

Rust
let mut number = 3;
while number != 0 {
    println!("{}!", number);
    number -= 1;
}

3. for (Iteratie over verzamelingen en bereiken)

De for lus is het meest gebruikelijke en veiligste hulpmiddel voor het herhalen van elementen in een verzameling of een reeks getallen:

Rust
// Iterates over numbers 1 through 3 (excluding 4)
for number in 1..4 {
    println!("Valore: {}", number);
}

// Iterates including the right boundary using '='
for number in 1..=3 {
    println!("Valore: {}", number); // Prints 1, 2 and 3
}

Luslabels

Bij geneste lussen zijn de instructies break en continue standaard van toepassing op de binnenste lus. Met Rust kunt u een luslabel gebruiken (geschreven als 'label_name:) om een ​​buitenste lus expliciet te beëindigen of voort te zetten:

Rust
let mut count = 0;
'outer: loop {
    loop {
        if count == 5 {
            break 'outer; // Exits the outer loop directly
        }
        count += 1;
    }
}

Probeer het zelf

Oefening#rust.m2.l1.e1
Pogingen: 0Laden…

Declareer een variabele genaamd getal met een waarde van 7. Gebruik vervolgens een if/else-expressie om de waarde 'groter' toe te wijzen aan het variabelebericht als getal groter is dan 5, of anders 'kleiner'. Druk ten slotte het bericht af met println!.

Editor laden…
Toon hint

Schrijf `let message = if number > 5 { 'groter' } else { 'kleiner' };` en geef het door aan `println!`.

Oplossing beschikbaar na 3 pogingen

Oefening#rust.m2.l1.e2
Pogingen: 0Laden…

Schrijf een for-lus die de getallen 1 tot en met 5 afdrukt (d.w.z. 1, 2, 3, 4, 5) met behulp van println! bij elke iteratie.

Editor laden…
Toon hint

Gebruik de syntaxis van het inclusieve bereik `for i in 1..=5` en voer `println!('{}', i);` uit binnen het blok.

Oplossing beschikbaar na 3 pogingen

Oefening#rust.m2.l1.e3
Pogingen: 0Laden…

Schrijf een lus die een teller voor veranderlijke variabelen ophoogt, beginnend bij 0. Wanneer de teller 10 bereikt, verlaat u de lus en retourneert u de teller vermenigvuldigd met 5 met behulp van de break-instructie om deze waarde toe te wijzen aan een onveranderlijk variabel resultaat. Tenslotte het afdrukresultaat.

Editor laden…
Toon hint

Gebruik `let result = loop { ... };`. Binnen de lus verhoogt u `counter` en voegt u de voorwaarde toe `if counter == 10 { break counter * 5; }`.

Oplossing beschikbaar na 3 pogingen