Pętle jako wyrażenia
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 5 z 66.
W większości języków programowania pętle to instrukcje, które wielokrotnie wykonują kod. Rust ma jednak wyjątkową cechę: pętle mogą być także wyrażeniami, które zwracają wartość. Oznacza to, że możesz przypisać wynik pętli do zmiennej.
Aby zwrócić wartość z pętli, użyj break, a następnie podaj wartość, którą chcesz zwrócić:
let result = loop {
// sprawdzanie pewnego warunku
if condition_met {
break 42; // wyjdź z pętli i zwróć 42
}
};Oto praktyczny przykład, który znajduje pierwszą liczbę parzystą, zaczynając od 10:
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // zwróć liczbę parzystą
}
counter += 1;
};
println!("First even number: {}", first_even);Pętla działa dalej, aż znajdzie liczbę parzystą, a następnie używa break counter, aby zakończyć pętlę i zwrócić tę liczbę. Zwrócona wartość zostaje przypisana do first_even.
Wyzwanie
ŁatwyOtrzymasz liczbę początkową jako dane wejściowe. Odczytaj dane wejściowe, przekonwertuj je na liczbę całkowitą i użyj pętli jako wyrażenia, aby znaleźć pierwszą liczbę podzielną przez 7, zaczynając od tej liczby.
Wymagania:
- Użyj wyrażenia
loop, które zwraca wartość - Rozpocznij sprawdzanie od liczby wejściowej
- Znajdź pierwszą liczbę podzielną przez 7 (reszta z dzielenia przez 7 wynosi 0)
- Użyj
break, aby zwrócić znalezioną liczbę z pętli - Wypisz wynik
Dane wejściowe: Jedna liczba całkowita reprezentująca liczbę początkową
Dane wyjściowe: Wypisz pierwszą liczbę podzielną przez 7, zaczynając od liczby wejściowej
Spróbuj swoich sił
use std::io;
fn main() {
// Odczytaj dane wejściowe
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: Napisz swój kod poniżej
// Użyj wyrażenia z pętlą, aby znaleźć pierwszą liczbę podzielną przez 7
// Wyświetl wynik
// println!("{}", result);
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online