Menu
Coddy logo textTech

여러 값 매칭하기

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 2번째.

때때로 동일한 코드를 실행해야 하는 여러 다른 값들을 매칭해야 할 때가 있습니다. 각 값에 대해 별도의 암(arm)을 작성하는 대신, Rust에서는 | (OR) 연산자를 사용하여 하나의 암에 여러 패턴을 결합할 수 있습니다.

하나의 arm에서 여러 값을 매칭하는 방법은 다음과 같습니다:

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"),
}

| 연산자는 영어의 "OR"처럼 작동합니다. 만약 값이 |로 구분된 패턴 중 어느 하나라도 일치하면, 해당 암(arm)이 실행됩니다. 이는 모두 동일한 작업을 수행하는 별도의 암들을 갖는 것보다 코드를 훨씬 더 깔끔하게 만들어 줍니다.

challenge icon

챌린지

쉬움

요일을 나타내는 숫자(1-7)를 입력으로 받습니다. 입력을 읽어 정수로 변환한 후, match 표현식과 | 연산자를 사용하여 평일(weekday)인지 주말(weekend)인지 출력하세요.

요구 사항:

  • 숫자가 1, 2, 3, 4, 또는 5인 경우, "Weekday"를 출력합니다.
  • 숫자가 6 또는 7인 경우, "Weekend"를 출력합니다.
  • 그 외의 다른 숫자인 경우, "Invalid day"를 출력합니다.

입력: 요일을 나타내는 단일 정수

출력: "Weekday", "Weekend", 또는 "Invalid day" 중 하나를 출력합니다.

치트 시트

| (OR) 연산자를 사용하여 하나의 매치 암(match arm)에 여러 패턴을 결합할 수 있습니다. 값이 |로 구분된 패턴 중 어느 하나와 일치하면, 해당 암이 실행됩니다.

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"),
}

직접 해보기

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실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨