Menu
Coddy logo textTech

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;
}
...
challenge icon

Wyzwanie

Początkujący

Otrzymujesz 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śli wind jest mniejsze niż 8,
  • "Breeze", jeśli wind mieści się w przedziale od 8 do 31 (włącznie z 8 i 31).
  • "Gale", jeśli wind mieści się w przedziale od 32 do 63 (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);
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Rust online