본문 바로가기

전자 공학/C언어 C++

[C언어 독학하기] 12. switch~case문

반응형

 

 

안녕하세요. 취업한 공대누나입니다.

오늘은 조건문 중의 하나인 switch case문에 대해 공부해보도록 하겠습니다.

swtich case문 같은 경우에는 

if문과 같이 조건에 따라 어떤 것을 실행할지 결정하게 됩니다.

간단하게 문법 형태를 보고 가도록 하겠습니다.

 

위와 같이 작성해주면 되는데요.

변수 값에 따라서 실행하는 case문이 달라집니다.

한 번 예제를 보도록 하겠습니다.

 

 

 

우선 입력받을 변수 a를 선언해주었습니다.

scanf_s를 통해 a라는 변수에 입력을 진행했습니다.

switch(a)라는 것은 a값이 조건이 된다는 것을 의미하고 a의 값에 따라서 해당 case문을 실행하게 됩니다.

 

입력받은 변수에 따라서 그 값이 1일 경우 1번을 선택하셧습니다.가 출력되게 코드를 구성해놨습니다.

2번일 경우 2번 선택, 3번일 경우 3번 선택입니다.

저는 2라는 숫자를 입력했고 2번을 선택하셨습니다가 출력된 것을 확인할 수 있습니다.

 

여기서 break라는 키워드를 볼 수 있습니다.

break 키워드는 스위치문을 종료하고 빠져 나오게 됩니다.

 

 

이렇게 default라는 키워드를 사용할 수도 있습니다.

default는 a의 값이 해당 케이스에 없을 경우 dafult가 실행되게 됩니다.

그래서 위와 같이 3을 입력했을 경우 (해당 케이스가 없을 경우) 잘못입력하셨습니다. 라는 말이 출력되게 됩니다.

 

 

실무에서 switch case문을 사용할 일이 있으면 저는 주로 아래와 같이 사용합니다.

 

 

 

차이점이 눈에 들어오시나요?

case에 1, 2, 3과 같이 입력하지 않고 #define을 통해 값을 상수로 정의해 놓은 다음

case문에 그 심볼릭상수를 쓰곤합니다.

그렇다면 왜 이렇게 할까요?

우선 가독성이 훨씬 좋습니다.

굳이 실행하는 문을 보지 않더라도 BOOK을 선택한 것이구나를 알 수 있습니다.

그리고 이에 따라서 동료와 협업하기도 좋아집니다.

 

수백줄, 수천줄이 되는 코드를 보다보면 직관적으로 알 수 있는 것이 굉장히 간편할 때가 많습니다.

그럴 경우 이렇게 되어 있으면 코드를 집중적으로 봐야 할 부분이 적어집니다.

지금처럼 짧고 간결한 코드를 쓸 때에는 잘 못 느끼실수도 있는데

위와 같이 습관을 들여놓으면 좋습니다. 

 

if문과 switch case문은 조건문에 해당하는데요.

조건에 따라서 실행되는 것이 달라지기 때문입니다.

swtich case문은 위와 같이 가독성을 높이는데 좀 더 장점이 있는 조건문 입니다.

하지만 if문처럼 비교 연산자등을 사용할 수 없으며 (a가 b보다 클 경우 이것을 실행해라와 같은 것을 할 수 없죠)

char형 문자, char형 정수, int형 정수만 자료형으로 사용할 수 있다는 제한이 있습니다.

때에 따라서 적절한 조건문을 사용해주면 되겠죠?

 

 

오늘까지 이렇게 기본적인 제어문들에 대해 공부해보도록 했습니다.

다음 시간 부터는 함수에 대해 공부해보도록 하겠습니다.

반응형