Switch Case

이윤설·2023년 1월 24일
0


Switch Case 는 처음 보면 다소 난해한 부분이 있다. 특히 예제처럼 break 를 생략해버린 경우라면 더 그렇다. 쉽게 설명드리면 어떤 특정 케이스에 해당하는 위치부터 아래 방향으로 코드를 실행한다고 보면 된다.

switch(grade) { ... } 라고 한다면 grade 에 들어갈 수 있는 값에 대한 케이스가 case 1: case 2: ... 처럼 정의가 될 것이다. grade = 1 이라고 하면 case 1: 부터, grade = 2 라고 하면 case 2: 부터 실행이 될 것이다. 그러다가 break 를 만나면 switch 문을 완전 빠져나오게 된다.

하지만 예제에서는 case 1, case 2 일 때는 break 가 없습니다. 그래서 grade 의 변화에 따른 수행 코드 및 결과는 이렇다.

1) grade = 1 인 경우
case 1: 부터 시작해서 case 3: 의 코드까지 모두 수행되어서 실제 동작은 아래 코드와 같다.

int grade = 3; // 등급
int price = 7000; // 기본 가격
price += 1000; // case 1 실행
price += 1000; // case 2 실행
price += 1000; // case 3 실행

즉 price 는 7000 원에서 1000 원을 3번 더하니 10000 원.

2) grade = 2 인 경우
case 2: 부터 시작해서 case 3: 의 코드까지 수행되며 실제 동작은 아래 코드와 같다.

int grade = 3; // 등급
int price = 7000; // 기본 가격
// price += 1000; // case 1 실행되지 않음
price += 1000; // case 2 실행
price += 1000; // case 3 실행

이번에는 case 1 의 코드가 실행되지 않아서 7000 원에 1000 원을 2번만 더한 9000 원.

3) grade = 3 인 경우
case 3: 만 수행되며 실제 동작은 아래 코드와 같다.

int grade = 3; // 등급
int price = 7000; // 기본 가격
// price += 1000; // case 1 실행되지 않음
// price += 1000; // case 2 실행되지 않음
price += 1000; // case 3 실행

이번에는 7000 원에서 1000 원만 더하므로 8000 원.

profile
화려한 외면이 아닌 단단한 내면

0개의 댓글