Menu
Coddy logo textTech

Match 문

Coddy Rust 여정의 Fundamentals 섹션에 포함된 레슨 — 75개 중 26번째.

match 표현식은 값을 일련의 패턴과 비교하고, 어떤 패턴이 일치하는지에 따라 코드를 실행할 수 있게 해줍니다.

match 표현식의 기본 구조는 다음과 같습니다:

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... 더 많은 패턴
	_ => default_expression,
}

match 키워드 뒤에는 테스트하려는 값이 옵니다.

match의 각 암(arm)은 패턴, 그 뒤에 오는 =>, 그리고 실행할 코드로 구성됩니다.

언더스코어 _는 다른 패턴과 일치하지 않는 모든 항목과 일치하는 기본 케이스입니다.

다음은 예시입니다:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... 더 많은 패턴들,
	_ => "Invalid day",
};

매치 암(arm)에서 여러 줄의 코드를 사용하려면 블록을 사용하세요:

let day = 3;
let day_name = match day {
	1 => {
		println!("First day of the week!");
		"Monday"
	},
	2 => "Tuesday",
	// ... 기타 사례
	_ => "Invalid day",
};

|를 사용하여 여러 패턴을 매칭할 수 있습니다:

let day = 3;
let day_type = match day {
	1 | 2 | 3 | 4 | 5 => "Weekday",
	6 | 7 => "Weekend",
	_ => "Invalid day",
};

Rust의 match 표현식은 철저해야(exhaustive) 하며, 이는 모든 가능한 값을 다루어야 함을 의미합니다. 컴파일러가 이를 대신 확인해 줄 것입니다.

challenge icon

챌린지

초급

월 번호(1월은 1, 2월은 2 등)를 입력받아 해당 계절을 출력하는 프로그램을 작성하세요. 로직에는 match 문을 사용하세요.

계절과 그에 해당하는 월은 다음과 같습니다:

  • Winter: 12월 (12), 1월 (1), 2월 (2)
  • Spring: 3월 (3), 4월 (4), 5월 (5)
  • Summer: 6월 (6), 7월 (7), 8월 (8)
  • Autumn: 9월 (9), 10월 (10), 11월 (11)

치트 시트

match 표현식은 값을 패턴과 비교하고 어떤 패턴이 일치하는지에 따라 코드를 실행합니다:

match variable {
    pattern1 => expression1,
    pattern2 => expression2,
    _ => default_expression,
}

기본 예제:

let day = 3;
let day_name = match day {
    1 => "Monday",
    2 => "Tuesday",
    3 => "Wednesday",
    _ => "Invalid day",
};

암(arm)에서 여러 줄의 코드를 실행하려면 블록을 사용하세요:

let day = 3;
let day_name = match day {
    1 => {
        println!("First day of the week!");
        "Monday"
    },
    2 => "Tuesday",
    _ => "Invalid day",
};

|를 사용하여 여러 패턴을 매칭할 수 있습니다:

let day = 3;
let day_type = match day {
    1 | 2 | 3 | 4 | 5 => "Weekday",
    6 | 7 => "Weekend",
    _ => "Invalid day",
};

match 표현식은 반드시 철저해야(exhaustive) 합니다. 즉, 모든 가능한 값을 다루어야 합니다. 언더스코어 _는 다른 패턴과 일치하지 않는 모든 항목과 일치하는 기본 케이스입니다.

직접 해보기

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let month: i32 = input.trim().parse().unwrap();
    // 아래에 코드를 작성하세요
    let season = 

    // 아래 줄을 변경하지 마세요
    println!("status = {}", season);
}
quiz icon실력 점검

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

Fundamentals의 모든 레슨