Etykiety pętli
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 42 z 75.
Etykiety w Rust pomagają przerywać lub kontynuować określone pętle, gdy są zagnieżdżone. Dodaj 'label: przed pętlą, aby ją oznaczyć.
Na przykład:
'outer: for i in 1..=3 {
'inner: for j in 1..=3 {
if i * j > 5 {
break 'outer;
// This will break the outer loop
}
println!("({}, {})", i, j);
}
}
W tym przykładzie mamy dwie zagnieżdżone pętle oznaczone etykietami 'outer i 'inner. Gdy iloczyn i i j jest większy niż 5, wykonywana jest instrukcja break 'outer;, która przerywa zewnętrzną pętlę. Wynik działania tego kodu to:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)Podobnie możesz użyć continue 'label;, aby przejść do następnej iteracji określonej pętli. Na przykład:
'outer: for i in 1..=3 {
'inner: for j in 1..=3 {
if i == j {
continue 'outer;
// This will continue the outer loop
}
println!("({}, {})", i, j);
}
}W tym przypadku, gdy i jest równe j, wykonywana jest instrukcja continue 'outer;, która pomija resztę pętli wewnętrznej i przechodzi do następnej iteracji pętli zewnętrznej. Wynik będzie następujący:
(2, 1)
(3, 1)
(3, 2)Wyzwanie
PoczątkującyNapisz program w Rust, który używa etykietowanych pętli do znalezienia pierwszej pary liczb (i, j), których suma jest większa niż 10, a ich iloczyn jest wielokrotnością 12 (iloczyn dzieli się przez 12 bez reszty). Program powinien iterować po wartościach i od 1 do 20 oraz j od 1 do 20.
Po znalezieniu pary wypisz ją w formacie (i, j) i przerwij zewnętrzną pętlę.
Spróbuj swoich sił
fn main() {
'outer: for i in 1..=20 {
for j in 1..=20 {
// Your logic here
break 'outer;
}
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online