개발하는 리프터 꽃게맨입니다.

[C#] C++에 비해서 강력해진 switch문! 본문

언어/C#

[C#] C++에 비해서 강력해진 switch문!

파워꽃게맨 2024. 5. 4. 21:45

switch문은 특정 정수형 변수에 대해서

분기 처리를 하여 코드의 흐름을 제어하는 문법입니다.

 

C++에서는 switch 문에서 사용할 수 있는 변수는 '정수'로 제한되었습니다.

(int, char 등.. 만 사용할 수 있고 float, const char* 등.. 은 사용할 수 없죠)

 

그러나 C#에서는 다양한 조건식이 허용되는 모습을 보입니다.

 

 

이런 식으로 문자열로 분기 처리를 할 수도 있고

가장 신기했던 것은 Type 에 대한 분기 처리를 수행할 수 있다는 것이었습니다.

 

 

정말 신기합니다!

 

 

 

[케이스 가드]

switch문의 case 절의 패턴을 더 구체적으로 만들어주는 추가적인 조건 검사라고 할 수 있습니다.

case 절 뒤에 when 절을 붙여 사용합니다.

when 절은 if 문처럼 true/false 로 결과가 나오는 식을 입력받습니다.

 

 

 

[Switch 식]

문과 식의 차이점을 알아봅시다.

식은 결과값을 만들어낼 수 있는 연산자와 연산자의 조합입니다.

즉, 식은 계산을 해서 결과를 내놓습니다.

 

문은 주어진 일을 할 뿐입니다. 결과를 내든 그렇지 않든 말입니다.

 

어떤 작업에 분기가 필요할 때는 switch 문을 사용하되, 분기를 거쳐 값을 내야 하는 경우에는 switch 식을 사용하면 더 읽기 좋은 코드를 작성할 수 있습니다.

 

 

이것은 입력받은 값에 대해서

등급을 출력하는 간단한 프로그램 입니다.

 

그런데 이정도 로직은

switch 문이아닌 switch 식으로 바꿔서 사용할 수 있습니다.

 

 

각 케이스에 break 문은 불필요하며

콤마 (,)로 구분합니다.

 

default 키워드는 _(무시 패턴)을 사용하여 바꿀 수 있습니다.)

 

간단한 switch 문의 경우 위처럼 switch식을 이용해서 처리할 수 있습니다. 읽기도 편하구요

switch 문을 통해서 어떤 결과를 내야하는 것이 아니라 값을 얻어내야하는 경우 사용하면 좋습니다.

 

 

when 구문을 동시에 사용하는 방법

'언어 > C#' 카테고리의 다른 글

[C#] C#에서 구현하는 객체지향  (0) 2024.05.05
[C#] ref 키워드와 out 키워드  (0) 2024.05.04
[C#] C#에서 볼 수 있었던 생소한 연산자들  (0) 2024.05.01
[C#] 데이터 형식  (0) 2024.04.29
[C#] C# 스터디 시작합니다.  (0) 2024.04.27