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 |