Menu
Coddy logo textTech

Dopasowywanie zakresów

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 3 z 66.

Gdy musisz sprawdzić, czy wartość mieści się w określonym zakresie liczb, pisanie osobnych gałęzi dla każdej wartości byłoby żmudne. Wyrażenie match w Rust obsługuje wzorce zakresów, które pozwalają dopasowywać wartości z ciągłego zakresu za pomocą składni start..=end.

Operator ..= tworzy zakres domknięty, co oznacza, że zarówno wartość początkowa, jak i końcowa są uwzględniane w dopasowaniu. Oto jak możesz używać zakresów w ramionach dopasowania:

let temp = 22;

match temp {
    ..=0 => println!("Freezing"),
    1..=15 => println!("Cold"),
    _ => println!("Warm"),
}

W tym przykładzie temperatura 22 nie pasowałaby do dwóch pierwszych zakresów, więc przechodzi do ramienia wieloznacznego i wypisuje „Warm”. Zakres 1..=15 obejmuje zarówno 1, jak i 15, więc każda temperatura od 1 do 15 wypisałaby „Cold”.

challenge icon

Wyzwanie

Łatwy

Otrzymasz wiek jako dane wejściowe. Odczytaj dane wejściowe, przekonwertuj je na liczbę całkowitą i użyj wyrażenia match z wzorcami zakresów, aby wypisać odpowiednią kategorię wiekową.

Wymagania:

  • Jeśli wiek mieści się w zakresie 0..=12, wypisz "Child"
  • Jeśli wiek mieści się w zakresie 13..=19, wypisz "Teenager"
  • Jeśli wiek mieści się w zakresie 20..=64, wypisz "Adult"
  • Jeśli wiek mieści się w zakresie 65..=120, wypisz "Senior"
  • W przypadku każdego innego wieku wypisz "Invalid age"

Dane wejściowe: Jedna liczba całkowita reprezentująca wiek

Wynik: Wypisz kategorię wiekową: "Child", "Teenager", "Adult", "Senior" lub "Invalid age"

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 age: i32 = input.trim().parse().expect("Please enter a valid number");
    
    // TODO: Napisz poniżej kod, używając wyrażenia match ze wzorcami zakresowymi
    
    // Wypisz wynik
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Rust online