Zagnieżdżone if-else
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 28 z 75.
Możemy zagnieżdżać instrukcje if / else if / else jedna w drugiej. Pozwala nam to tworzyć hierarchiczne struktury podejmowania decyzji.
Na przykład:
if age > 18 {
if hasLicense {
println!("You can drive");
} else {
println!("Get a license first");
}
} else {
println!("Too young to drive");
}Może być zagnieżdżony w nieskończoność:
if condition1 {
if condition2 {
if condition3 {
// jeśli condition1, condition2 i condition3 są prawdziwe
...
}
}
}Wyzwanie
PoczątkującyUtwórz program, który sprawdza, czy ktoś może skorzystać z kolejki górskiej. Wymagania:
- Osoba musi mieć co najmniej 12 lat
- Osoba musi mieć więcej niż 150 cm wzrostu
- Jeśli spełnia oba wymagania, ale ma mniej niż 15 lat, musi być pod opieką osoby dorosłej
Wyświetl dokładnie te komunikaty w każdym przypadku:
- Jeśli osoba jest za młoda:
Sorry, you're too young - Jeśli osoba nie jest wystarczająco wysoka:
Sorry, you're not tall enough - Jeśli osoba ma mniej niż 15 lat i nie towarzyszy jej osoba dorosła:
Sorry, you need an adult with you - Jeśli osoba ma mniej niż 15 lat i towarzyszy jej osoba dorosła:
You can ride with adult supervision! - Jeśli osoba ma co najmniej 15 lat i jest wystarczająco wysoka:
You can ride by yourself!
Spróbuj swoich sił
use std::io;
fn main() {
let mut age_input = String::new();
let mut height_input = String::new();
let mut adult_input = String::new();
io::stdin().read_line(&mut age_input).unwrap();
io::stdin().read_line(&mut height_input).unwrap();
io::stdin().read_line(&mut adult_input).unwrap();
let age: i32 = age_input.trim().parse().unwrap();
let height: i32 = height_input.trim().parse().unwrap();
let has_adult: bool = adult_input.trim().parse().unwrap();
// Napisz swój kod poniżej
}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