공부/C#

[C#]switch - break문 사용 이유

개발의 피 2023. 10. 29. 22:34

몇 달 전에 가볍게 읽었던 책을 다시 보고 있다

그 전날은 대충 훑어 보고, 어제 자기 전에는 제대로 다시 봤는데... 

처음 눈에 들어오는 부분이 있었고... 여태 궁금하지만 몰랐던 이유를 알게되니까...

자기 전에 가볍게 읽은 목적과 달리 잠이 다 깨버렸던,,,,! 

문법 책을 보면서 오랜만에 느낀 희열감이었다....  

 


C언어 - switch)

int a = 0;
switch(0)
{
case 0:
	a++;
case 1:
	a++;
case 2:
	a++;
}

실행 결과 : a = 3

C# - switch)

int a = 0;
switch(0)
{
case 0:
	a++;
    break;
case 1:
	a++;
    break;
case 2:
	a++;
    break;
}

실행 결과 : a = 1

 

C에서 변수 a가 3이 되는 이유 : 제어 이동(fall-through)

조건이 일치하면 그 곳으로 이동하는 것 (= 조건이 일치하지 않더라도 위에서부터 차례대로 실행)

즉, 앞에 있는 조건을 만족했지만 다른 조건에 있는 처리도 계속해서 실행

 

C#은 조건에 해당하는 값에 따라 실행하는 이유 : break문을 넣어서 이동을 중단 (=제어 이동 발생 x)

* 제어 이동을 전제로 코드 작성 가능? -> 불가능! (아예 허용하지 않음, break문을 작성하지 않으면 컴파일 에러 발생)

'공부 > C#' 카테고리의 다른 글

[C#]파일 범위 네임스페이스  (0) 2023.11.04
[C#]전역 using (global using)  (0) 2023.11.04
[C#]배열 초기화 - 세 가지 방법  (0) 2023.11.02
[C#]var  (0) 2023.06.14
(링크) Microsoft - C# 설명서  (0) 2022.08.15