If-else
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 25 z 75.
if pozwala nam wykonać określony kod, jeśli warunek jest spełniony, ale co, jeśli chcemy wykonać coś innego, gdy warunek nie jest spełniony?
Do tego służy instrukcja else:
let age: i32 = 15;
let status = if age >= 18 {
"Adult"
} else {
"Young"
};W powyższym przykładzie age jest mniejsze niż 18, co oznacza, że wykonywany jest kod w gałęzi else, a status będzie zawierać "Young".
Możemy nawet uczynić to bardziej zaawansowanym, używając instrukcji else if:
let age: i32 = 68;
let status = if age < 18 {
"Young"
} else if age >= 18 && age <= 65 {
"Adult"
} else {
"Old"
};Tutaj sprawdza, czy wiek jest mniejszy niż 18; jeśli nie, przejdzie do następnego warunku i sprawdzi, czy wiek mieści się w przedziale od 18 do 65. Jeśli ten warunek również nie zostanie spełniony, ustawi status na "Old".
Możemy dodać tyle instrukcji else if, ile chcemy:
if condition1 {
code;
} else if condition2 {
code;
} else if condition3 {
code;
}
...Wyzwanie
PoczątkującyOtrzymujesz kod, który pobiera jako dane wejściowe liczbę wskazującą prędkość wiatru i zapisuje ją w zmiennej o nazwie wind.
Uwaga: w kolejnych lekcjach dowiemy się, jak pobierać dane od użytkownika. Na razie po prostu nie zmieniaj pierwszych wierszy.
Twoim zadaniem jest zainicjowanie zmiennej status na podstawie warunków:
"Calm", jeśliwindjest mniejsze niż8,"Breeze", jeśliwindmieści się w przedziale od8do31(włącznie z 8 i 31)."Gale", jeśliwindmieści się w przedziale od32do63(włącznie z 32 i 63)"Storm"w przeciwnym razie
Sprawdź przypadki testowe, aby zobaczyć wszystkie dane wejściowe i oczekiwane wyniki
Spróbuj swoich sił
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let wind: i32 = input.trim().parse().unwrap();
// Zastąp poniższą linię wyrażeniem if-else, które przypisuje wartość do status na podstawie wind
let status = "unset";
// Nie zmieniaj poniższej linii
println!("status = {}", status);
}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