Menu
Coddy logo textTech

Сопоставление нескольких значений

Часть раздела Логика и управление потоком путешествия по Rust на Coddy. Урок 2 из 66.

Иногда нужно сопоставить несколько разных значений, которые должны запускать один и тот же код. Вместо того чтобы писать отдельные ветви для каждого значения, Rust позволяет объединить несколько шаблонов в одной ветви с помощью оператора | (ИЛИ).

Вот как можно сопоставить несколько значений в одной ветви:

let month = 12;

match month {
    12 | 1 | 2 => println!("Winter"),
    3 | 4 | 5 => println!("Spring"),
    6 | 7 | 8 => println!("Summer"),
    9 | 10 | 11 => println!("Fall"),
    _ => println!("Invalid month"),
}

Оператор | работает как «ИЛИ» в английском языке: если значение соответствует любому из шаблонов, разделённых с помощью |, выполнится эта ветвь. Благодаря этому код становится намного чище, чем при использовании отдельных ветвей, которые выполняют одно и то же.

challenge icon

Задание

Легко

Вы получите номер дня (1–7) в качестве входных данных, обозначающий день недели. Прочитайте входные данные, преобразуйте их в целое число и используйте выражение match с оператором |, чтобы вывести, является ли день будним или выходным.

Требования:

  • Если день — 1, 2, 3, 4 или 5, выведите "Weekday"
  • Если день — 6 или 7, выведите "Weekend"
  • Для любого другого числа выведите "Invalid day"

Входные данные: одно целое число, представляющее номер дня

Выходные данные: выведите либо "Weekday", либо "Weekend", либо "Invalid day"

Попробуйте сами

use std::io;

fn main() {
    // Считать ввод
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let day: i32 = input.trim().parse().expect("Please enter a number");
    
    // TODO: Напишите свой код ниже, используя выражение match с оператором |
    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Rust