비타Cpp

조건문 switch 본문

C,C++

조건문 switch

멍C 2020. 4. 22. 14:43

가위 바위 보로 if문을 간단하게 사용 해봤습니다.

 

그런데 저희는 가위 바위 보를 정수값 1,2,3을 이용 해서 비교 연산(==, !=)을 통해 승패를 결정지었습니다.

 

이처럼 정수 값의 비교연산을 통해 조건분기를 나누는 조건문이 하나 더있습니다.

 

switch라는 조건문 입니다.

 

사용방법은 이렇습니다.


    int number = 0;
    switch (number)
    {
    case 0 :
    	//실행코드
        break;
    case 1:
    	//실행코드
        break;
    case 2:
    	//실행코드
        break;
    case 3:
    	//실행코드
        break;
    case 4:
    	//실행코드
        break;
    default:
    	//실행코드
        break;
    }

switch문의 가장 첫 괄호 안에 들어오는 수에 따라 case별로 분기를 나눠서 실행코드른 나눠 놓을수 있습니다.

 

위 코드에서는 number가 0 이므로 바로 case 0 :의 실행코드가 실행되는 것입니다.

 

주의 하셔야 할게 만약 break; 가 없다면 switch문은  찾는 정수값의 case를 찾으면 그부분의 실행 부분부터 전 부 실행 시킵니다.

number가 3인데 break가 없다면 3,4,default 까지 전부 실행됩니다.

 

그리고 switch는 단순 정수값만 넣어 비교 연산 하기 때문에 괄호 안에는 정수가 들어가야 합니다. 하지만 그러면 이 정수값이 의미하는 바를 다른 사람이 보기에는 이해 하기 힘들죠. 그래서 switch를 사용 할때 아주 유용하게 쓰이는 문법이 하나있습니다.

좀더 직관적으로 정수값이 의미하는 바를 이름에 표시 하게하는 문법이 enum문 입니다.

 

가위바위보 로 보면 1,2,3 을 영어로 표시할 수 있게 됩니다.

Scissor, Rock, Paper 이런식으로요.

 


enum HAND_SHAPE
{
    SCISSOR,
    ROCK,
    PAPER
};
enum class Hand_Shape
{
    SCISSOR,
    ROCK,
    PAPER
};

enum 문은 두가지 방법 으로 사용 됩니다.

 

일반 enum문과 enum class 문인데 이 두개의 차이점은 접근 방식에 있습니다.

 

이는 다음 가위바위보를 switch를 이용 해서 만들어 볼때 보여드리겠습니다.

'C,C++' 카테고리의 다른 글

R-value와 L-value  (0) 2020.05.17
const 위치에 따른 의미들  (0) 2020.05.16
조건문 if, if ~ else if ~ else 가위 바위 보 게임  (0) 2020.04.21
조건문 if, if ~ else if ~ else  (0) 2019.12.02
C의 기본타입들..(2)  (0) 2019.11.26
Comments