C언어 기초 강좌5 (Switch~Case 문)
본문 바로가기
프로그래밍/C언어 기초 강좌

C언어 기초 강좌5 (Switch~Case 문)

by 124578 2020. 12. 7.

안녕하세요. 

오늘은 저번 포스팅 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; 문에 대해 포스팅 하겠습니다.

 

혹시 틀린부분이나 궁금하신점은 댓글 남겨 주세요.. 

 

감사합니다.

댓글


TOP

TEL. 02.1234.5678 / 경기 성남시 분당구 판교역로