switch문
switch문도 if문처럼 조건문이다. 하지만 사용법은 조금 다르다. if문의 조건은 논리에 따른 조건이었다면 switch는 조건의 값만을 가지고 판단을 한다.
Ex>
switch(조건)
{
case 1:
{
조건 값이 1일 때 실행 내용.
}
case 2:
{
조건 값이 2일 때 실행 내용.
}
.....
default:
{
모든 조건이 맞지 않을 때 실행 내용. (if문의 else와 같은 역할.)
}
}
위에 조건은 변수나 나중에 배울 함수의 리턴 값을 사용할 수 있다. if문과 다른 점은 위에 괄호로 구역을 구분지었지만 case안에 내용은 구분을 짓지 않아도 구분을 한다. case 뒤에 붙는 숫자 1은 조건의 결과 값이 1일 때를 나타낸다. 1이 아닌 다른 값이 되어도 상관이 없으며 상수 값이면 된다.
상수가 아닌 변수를 case에 사용하면 다음과 같이 오류가 발생한다. 상수 값만 쓸 수 있다.
- 소스 코드 예시
int a = 0;
switch(a)
{
case 0:
{
std::cout << "0입니다." << std::endl;
}
case 1:
{
std::cout << "1입니다." << std::endl;
}
case 2:
{
std::cout << "2입니다." << std::endl;
}
}
a가 0이기 때문에 0입니다만 실행이 되었어야하지만 그 밑에 있는 코드들도 실행되었다. 이를 막는 방법으로 break를 사용해주면 된다. break는 주어진 범위에서 빠져나간다.
- 소스 코드 예시
int a = 0;
switch(a)
{
case 0:
{
std::cout << "0입니다." << std::endl;
break;
}
case 1:
{
std::cout << "1입니다." << std::endl;
break;
}
case 2:
{
std::cout << "2입니다." << std::endl;
break;
}
}
이제 결과가 제대로 출력된다. 그렇지만 break를 써주지 않는다고 잘못된 코드는 아니다. 경우에 따라 break를 사용하지 않고 쓰는 경우가 있다.
- 출처 : 열혈강의 C++ 언어본색
※ 책을 보고 공부한 내용을 정리하였기때문에 내용이 책과 다를 수 있습니다.