- 출처 : C# 코딩의 기술: 기본편, 1.2 if와 switch에 관한 오해
이건 저번에 작성했던 break문 사용 이유 + 제어 이동에 관련된 내용
[C#]switch - break문 사용 이유
몇 달 전에 가볍게 읽었던 책을 다시 보고 있다 그 전날은 대충 훑어 보고, 어제 자기 전에는 제대로 다시 봤는데... 처음 눈에 들어오는 부분이 있었고... 여태 궁금하지만 몰랐던 이유를 알게되
aeju.tistory.com
*한 줄 요약 : 다른 언어는 몰라도, C#에서는 switch문이 안 좋을 이유가 x*
무조건 if문 여러 개를 사용해서 구현하지 말고, switch문이 필요한 경우엔 switch문을 사용하는 것이 낫다 !
if문 | switch문 |
조건 판정문 (조건식 하나 -> 판정할 수 있는 조건도 하나) 처리 : 조건이 성립할 때 / 성립하지 않을 때 (두 가지 결과 뿐) |
다중 조건 판정 여러 개의 값을 이용해 조건을 분기 |
if(조건식) { 조건 성립 시 실행 } else 성립하지 않을 때 실행 |
switch(식) { case 식1: 식의 값이 1일 때 실행하는 처리 break; case 식2: 식의 값이 2일 때 실행하는 처리 break; ... default: 어떤 값에도 해당하지 않을 때 실행하는 처리 break; } |
일반적으로(다른 언어에서) switch문이 가독성이 떨어지고 버그가 발생하기 쉬운 것은 맞지만,
C#에서만큼은 무조건 피해야 할 대상 x
1. C는 문자열을 판정할 수 없지만, C#에서는 문자열을 판정할 수 있다
2. 제어 이동을 허용하지 않는다 = break문 생략 불가능
-> 코드 고민해서 해석할 필요가 없기 때문에, 코드 가독성 떨어지지 않고
break문 생략하면, 컴파일 에러 발생하기 때문에 버그가 쉽게 발생하지도 않음
if문과 switch문을 비교했을 때, if문의 코드양이 더 적지만 switch문이 더 좋은 이유
판정식 3개 (if - else if - else ) : 요구 사항을 만족시키기에 너무 과한 방식 (cf. switch문 : 판정식 1개)
의문 : 과하면서 강력한 방법이면 오히려 좋은 것이 아닌가?
정답 : 아무런 관련이 없는 식도 작성할 수 있다는 강력함 = 오히려 버그가 발생할 수 있는 여지를 주는 것
switch문 사용 -> 오로지 식 하나로 값을 분류하기 때문에, 버그가 발생할 수 있는 여지도 줄어드는 것 !
'공부 > C#' 카테고리의 다른 글
[C#/궁금증]기본 데이터 형식(15가지)는 전부 값형식일까? (0) | 2023.12.17 |
---|---|
[C#/LINQ]First vs. FirstOrDefault (0) | 2023.12.10 |
[C#]var 사용법 (1) | 2023.11.29 |
[C#]readonly vs. const (1) | 2023.11.27 |
[C#]static(정적) 필드, 메소드 (0) | 2023.11.12 |