본문 바로가기
c++

9. switch,조건식

by hello_world.cpp 2019. 12. 31.
728x90
반응형

1.switch 문

중첩 if문이 너무 많아지면 프로그램을 이해하는데에 어려움이 생깁니다.

그런 문제를 해결하기 위해 중첩 if 문 대신 사용할 수 있는게 switch입니다!

 

switch문은 기본적으로 이런 형태입니다.

switch (switch 수식)

{

case 1: 문장1; break;

case 2: 문장2; break;

...

case N: 문장N; break;

default: case가 부합되지 않을 때 실행되는 문장;

}

이렇게만 보면 낯설고 뭔가 싶죠.. switch를 이용한 프로그램을 하나 살펴보며 설명해드릴게요~

 

아래는 switch 문을 이용해서 연도를 입력하면 입력 연도의 동물을 출력하는 프로그램입니다.

 

사용자가 연도 year을 입력하면 12로 나누어낸 나머지로 그해가 12간지중 어떤 동물이 해당되는지 알려줍니다.

입력된 year을 12로 나눈 나머지라면 0~11까지 경우가 있겠죠?

 

switch 문은 괄호 안에 "switch수식"을 적는데요.

 

10번째 줄에 있는

switch (year%12) 괄호 속 수식의 결과는 정수이어야 합니다.

 

그아래에 있는

case 0 부터 case 11 정수 상수 형식이어야하고 1+x 같이 변수가 포함되어 있으면 안됩니다!

이 값들은 정수이어야하고 실수는 사용할 수 없습니다.

 

break 즉시 switch문을 빠져나가게 합니다.

case문에서 처리가 끝난 다음에 필요할 때 break를 적절히 사용해야합니다.

 

이 프로그램에 사용하지는 않았지만

default는 case 들 모두에 해당되지 않을 때 실행하게 할 문장을 적는 곳입니다.

default: cout <<"어떤 경우에도 해당되지 않는다."<<endl;

이런식으로 사용할 수 있습니다!

 

이제 프로그램을 실행시켜봅시다.

새해복많이 받으세요 : )

2020년을 입력해보니 쥐띠의 해라고 나옵니다.

 

그렇다면 switch로 간결하게 표현해본 위의 코드를 중첩 if 문으로 입력해보면 어떨까요?

 

무려 60줄,,

 

이렇게나 길어 집니다..!!

** 때에 따라 if문을 사용할지 switch를  사용할지 잘 선택하면 코드를 간결하게 표현할 수 있답니다~

위와 같은 경우에는 switch 문이 중첩if문보다 훨씬 간결하게 코드를 표현 할 수 있죠!

 

2. 조건식

 

조건식도 이전에 이용하던 if-else문을 훨씬 간단하게 표현해주는 방법중 하나 입니다.

조건식의 기본 형태

부울-식 ? 수식1 : 수식2

이런 형태로 사용하고 ?(물음표)앞의 부울-식의 결과가 참이라면 조건식의 결과는 수식1이 되고 거짓이라면 조건식의 결과는 수식2가 됩니다.

 

아래는 조건식을 이용해서 두개의 값 중 더 큰값을 알 수 있는 코드입니다.

num1과 num2중 더 큰값을 정수 max에 넣는 내용의 식을 if-else로도 표현해놓고 조건식으로도 표현해보았는데요! 

if-else도 좋지만 22번줄처럼 조건식으로 표현하면 식이 훨씬 짧고 간결하죠?

 

 

출력해보면 결과값은 이렇게 같은 결과가 나옵니다~

 

if문,if-else문 외에도 오늘 배운 switch 문,조건식을 알아두면 많은 도움이 되니 연습해두세요~ : )

728x90
반응형

댓글