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 문으로 입력해보면 어떨까요?
이렇게나 길어 집니다..!!
** 때에 따라 if문을 사용할지 switch를 사용할지 잘 선택하면 코드를 간결하게 표현할 수 있답니다~
위와 같은 경우에는 switch 문이 중첩if문보다 훨씬 간결하게 코드를 표현 할 수 있죠!
2. 조건식
조건식도 이전에 이용하던 if-else문을 훨씬 간단하게 표현해주는 방법중 하나 입니다.
조건식의 기본 형태는
부울-식 ? 수식1 : 수식2
이런 형태로 사용하고 ?(물음표)앞의 부울-식의 결과가 참이라면 조건식의 결과는 수식1이 되고 거짓이라면 조건식의 결과는 수식2가 됩니다.
아래는 조건식을 이용해서 두개의 값 중 더 큰값을 알 수 있는 코드입니다.
num1과 num2중 더 큰값을 정수 max에 넣는 내용의 식을 if-else로도 표현해놓고 조건식으로도 표현해보았는데요!
if-else도 좋지만 22번줄처럼 조건식으로 표현하면 식이 훨씬 짧고 간결하죠?
출력해보면 결과값은 이렇게 같은 결과가 나옵니다~
if문,if-else문 외에도 오늘 배운 switch 문,조건식을 알아두면 많은 도움이 되니 연습해두세요~ : )
'c++' 카테고리의 다른 글
11. 반복문,while문,do-while문,for문 (0) | 2020.01.02 |
---|---|
10. 문자데이터 char 형,string 형 (0) | 2020.01.01 |
8. 난수생성,#include <cstdlib>,#include <ctime>,rand(),srand() (0) | 2019.12.30 |
7. #include "pch.h", 미리 컴파일된 헤더 오류 (0) | 2019.12.26 |
6. C++ bool,부울식,if-else (0) | 2019.11.16 |
댓글