[C#] switch 식

Learning 

When: 1학년 9월 2일

 

How:

처음에 식 본문 멤버를 공부하다 switch 식이 나왔는데, switch 식을 공부하다 패턴 매칭이 나와서 패턴 매칭에 대해 공부하며 switch 문을 공부하게 되었습니다. 

 

Understanding:

  • 설명 : switch 식은 switch 문과 비슷하면서도 식이기 때문에 많은 차이점이 있습니다.
    switch 식은 *, %, +, > 처럼 또 다른 값과 같이 사용해 만들어진 코드 모음이 하나의 값이 됩니다.
    switch 식은 switch 문의 로직처럼 여러 개의 case가 있고 case마다 조건이 있으며 인수가 조건에 맞다면
    그 case를 실행하여 값을 반환합니다.
    switch 식은 무조건 값을 반환해야 하며, 하나의 케이스에 하나의 식만 들어갈 수 있습니다.
    여기서 식은 방금 말한 것처럼 값을 반환하는 코드의 모음이기 때문에 switch 식이 한 번 더 들어갈 수도 있고,
    int를 반환하는 메서드가 들어갈 수도 있습니다.
  • 코드 : 아래의 코드는 int 형 변수 a에 int형 값을 반환하는 switch 식의 값을 대입하는 코드입니다.
    switch 문법은 인수가 하나 필요하므로 string 타입의 변수인 n을 인수로 사용하여 switch 식을 썼는데,
    사용 방법은 중괄호를 쓴 다음 인수의 값에 패턴 매칭을 하나씩 씁니다.
    그럼 switch 문법처럼 위에서부터 아래로 인수를 검사하게 되고, 성공하면 => 옆에 있는 값이 반환됩니다.
    아래 코드에선 무시 패턴상수 패턴만 사용했지만, 더욱 다양한 패턴을 사용할 수 있습니다.
//이 코드는 실용성이 없는 기능 설명만을 위한 코드이기 때문에 의도를 파악하려고 하실 필요 없습니다.

string n = "둘";

int a = n switch
{
    "하나" => 1,
    "둘" => 2,
    _ => (int)MathF.Max(10, 1)
};

Console.WriteLine(a); // '2'가 출력됩니다.

//위의 switch 식을 switch 문으로 바꾼 코드
switch (n)
{
    case "하나":
        a = 1;
        break;
    case "둘":
        a = 1;
        break;
    default:
        a = (int)MathF.Max(10, 1);
        break;
}

 

Result: switch 식까지 다 정리를 해서 마음이 편한데, C#이 후반으로 갈수록 개념 자체는 엄청 어렵진 않지만 사전 지식이 많이 필요해서 어려운 것 같습니다.

'C#' 카테고리의 다른 글

[C#] Hiding  (3) 2025.09.07
[C#] Shadoing  (0) 2025.09.06
[C#] 패턴 매칭 (목록 패턴)  (0) 2025.09.01
[C#] 패턴 매칭 (var, 무시)  (1) 2025.08.31
[C#] 패턴 매칭 (위치)  (0) 2025.08.30