몇 달 전에 가볍게 읽었던 책을 다시 보고 있다
그 전날은 대충 훑어 보고, 어제 자기 전에는 제대로 다시 봤는데...
처음 눈에 들어오는 부분이 있었고... 여태 궁금하지만 몰랐던 이유를 알게되니까...
자기 전에 가볍게 읽은 목적과 달리 잠이 다 깨버렸던,,,,!
문법 책을 보면서 오랜만에 느낀 희열감이었다....
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 |