안녕하세요.
오늘은 저번 포스팅 if ~else 문에 이어 Switch~ case 문 입니다.
Switch ~case문은 if~else문과 같이 조건에 따른 분기를 하는 동작 방식은 같습니다.
여러 자료를 찾아본 결과 Switch case가 if else 보다 속도면에서 빠르다고 합니다.
Switch ~case는 조건에 걸리면 바로 점프를 해서 넘어갑니다.
if else는 모든 조건을 다 비교하면서 순차적으로 흐르기 때문에 상대적으로 느리다고 합니다.
하지만 if else문이 짧은 경우에는 if else문이 더 빠르다고 합니다.
아래 switch case문과 같이 조건변수에 해당하는 값으로 바로 점프하여 실행문을 실행 합니다.
if else의 마지막 else문 처럼 default:문은 부합하는 조건이 없을때 실행 됩니다.
- switch case 문-
switch(조건변수)
case 조건문1:
실행문1;
break;
case 조건문2:
실행문2;
break;
case 조건문3:
실행문3;
break;
default:
실행문4;
break;
아래는 swithch case를 구현한 구문 입니다.
-전체코드-
-결과-
함수 SwitchCase를 실행한 결과 입니다.
입력값이 2이기 때문에 출력으로 2가 나온 것 입니다.
switch case문의 특성상 case 문의 break가 빠지면 결과는 바로 아래로 내려갑니다.
예를 들어 아래와 같습니다.
출력값2가 예상되지만 실행이되는 구문아래 break;를 주석처리하였습니다.
이런 경우에는 case 2: 도 실행이 되고 case 3:도 실행 됩니다.
하지만 마지막으로 실행된 case 3:의 값이 저장된 채로 함수가 종료됩니다.
따라서 결과는 3 입니다.
정상적으로 break; 구문이 있다면 case 2만 실행이 됩니다.
말그대로 break; 가 없다면 함수를 탈출하지 못하고 다시 바로 아래로 떨어져 아래의 case문까지 실행합니다.
이런 switch case 특성을 프로그램에 의도적으로 이용할 수도 있습니다.
다음은 break; return; 문에 대해 포스팅 하겠습니다.
혹시 틀린부분이나 궁금하신점은 댓글 남겨 주세요..
감사합니다.
'프로그래밍 > C언어 기초 강좌' 카테고리의 다른 글
C언어 기초강좌7 (for문) (9) | 2020.12.14 |
---|---|
C언어 기초강좌6 (break, return문) (12) | 2020.12.08 |
C언어 기초 강좌4(if문, if~else문) (2) | 2020.11.26 |
C언어 기초강좌3(연산자) (0) | 2020.11.20 |
C언어 기초강좌2 (2) | 2020.09.19 |
댓글