switch-case 조건문
if문과 다르게 맞는 조건 뒤에 로직은 모두 동작한다.
멈추고 싶다면 break;를 사용한다.
{}scope를 사용가능하다 if문과 다르게 {}가 없더라도 여러줄 인식이된다.
주의할점
switch문 앞부분에 변수를 선언할 수 있으나 초기화는 못한다.
case문에서 값을 정해줄 수 있다.
{}scope가 없을시 case문에서 선언한 변수는
switch문 앞부분에 선언한 것처럼 적용된다.
#include <iostream>
using namespace std;
enum class Colors
{
BLACK,
WHITE,
RED,
GREEN,
BLUE,
};
void printColorName(Colors c)
{
switch (c) {
//여기에 선언된것과 같다.
//int a;
case Colors::BLACK:
//{}scope가 있으면 내부에서만 적용된다.
int a;
a = 5;
cout << "BLACK";
break;
case Colors::GREEN:
//GREEN이 선택되면 a의 값은 garbage값이 출력된다.
cout << a << endl;
cout << "GREEN";
break;
default:
cout << "X" << endl;
}
cout << endl;
}
int main()
{
printColorName(Colors::BLACK);
return 0;
}
goto
반복문 대신에 과거에 자주사용했다.
어셈블리어로 가면 동작은 거의 같다.
지정한곳으로 가게 명령하는 것이다.
레이블이름을 지어 그위치로 돌아간다.
책갈피로 생각하면된다.
돌아갈곳 지정은 돌아갈곳(이름지정):
돌아가기 작동은 goto 돌아갈곳;으로 한다.
주의할점
지금은 거의 사용하지 않는다.
#include <iostream>
using namespace std;
int main()
{
double x;
//돌아갈곳 설정하기
notGood :
cout << "cin start" << endl;
cin >> x;
if (x < 0.0)//goto문 실행방법
goto notGood;
return 0;
}
'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글
c++ 반복문 for, 반복문제어 break,continue (0) | 2019.07.22 |
---|---|
c++ 반복문 while,do-while문 (0) | 2019.07.22 |
c++ 제어흐름종류,중단 Halt,조건문 if (0) | 2019.07.10 |
c++ 자료형 가명(별명)typedef,구조체 struct (0) | 2019.07.09 |
c++ enum열거형,enum class영역제한 열거형 (0) | 2019.07.09 |