5. 루프와 관계 표현식(4) - switch 구문

WanJu Kim·2022년 10월 22일
0

C++

목록 보기
23/81

특정 조건에서는 if else 구문이랑 비슷하면서도 좀 더 쉽게 구현할 수 있다. switch 구문을 사용하는 것이다.

	switch (integer-expression)
    {
    	case label1 : statement(s)
        case label2 : statement(s)
        ...
        default		: statement(s)
    }

integer-expression에는 정수, 문자, 열거자를 쓰는 것이 좋다. if else 구문은 위에서부터 밑으로 계속해서 검사해 나가지만, switch 구문은 integer-expression에 따라서 밑의 행을 검사하지 않고 바로 실행할 구문으로 점프한다. 예를 들어 integer-expression이 4라면, case4로 바로 점프해서 간다. 주의해야 할 건 각각의 case마다 끝에 break;을 적어주어야 한다. 그렇지 않으면 case4, case5... 계속해서 실행한다.

	int select = 1;
	while (select)
	{
		cout << "숫자를 입력하세요" << endl;
		cin >> select;
		switch (select)
		{
		case 0:
		{
			cout << "while문 탈출" << endl;
			break;
		}
		case 1:
		{
			cout << "case 1 채택" << endl;
			break;
		}
		case 2:
		{
			cout << "case 2 채택 break가 없다면?" << endl;
		}
		case 3:
		{
			cout << "case 3 채택" << endl;
			break;
		}
		default:
			cout << "그 이외의 숫자들" << endl;
			break;
		}
	}

실행 결과.

  • enum과 switch 구문
    switch 구문은 그 특징 때문에 enum과 같이 쓸 때가 많다.
	enum {red, orange, yellow, green, blue, navy, violet};
	int band;
	cout << "숫자를 입력하세요" << endl;
	cin >> band;
	while (band >= red && band <= violet)
	{
		switch (band)
		{
		case red: cout << "Red" << endl; break;
		case orange: cout << "orange" << endl; break;
		case yellow: cout << "yellow" << endl; break;
		case green: cout << "green" << endl; break;
		case blue: cout << "blue" << endl; break;
		case navy: cout << "navy" << endl; break;
		case violet: cout << "violet" << endl; break;
		}
		cout << "숫자를 입력하세요" << endl;
		cin >> band;
	}

실행 결과.

profile
Question, Think, Select

0개의 댓글