게임강의
기타게임 분류

기타게임 C언어 switch문 알아보기

컨텐츠 정보

본문

[출처: Gamezone]
작성자: 작성자 없음

switch 문에 대해 배워 보도록 하겠습니다.


먼저 switch 문의 기본 구조는 아래와 같습니다.


 


switch(변수)
    {
    case 값1:
        명령들;
        break;
    case 값2:
        명령들;
        break;
        .. (생략) ..
    }


 


이걸 토대로 간단하게 만들면 아래와 같이 만들 수 있습니다.


 


#include <stdio.h>
int main()
{
    int input;

    printf("마이펫 업그레이드\n");
    printf("무엇을 하실 것인지 입력하세요 \n");
    printf("1. 밥주기 \n");
    printf("2. 씻기기 \n");
    printf("3. 재우기 \n");

    scanf("%d", &input);

    switch(input)
    {
    case 1:
        printf("아이 맛있어 \n");
        break;

    case 2:
        printf("아이 시원해 \n");
        break;

    case 3:
        printf("zzz \n");
        break;

    default :
        printf("무슨 명령인지 못 알아 듣겠어. 왈왈 \n");
        break;
    }

    return 0;
}


 


이 때, 변수 부분에는 값1, 값2, ... 들과 비교할 변수가 들어가게 됩니다. 위 예제의 경우 input 을 1 과 2 와 3 과 비교해야 했으므로 변수 부분에는 input 이 들어가게 됩니다. 이 때 switch 문에 사용될 변수로는 반드시 정수 데이터를 보관하는 변수여야 합니다. 만약 input 이 float 이나 double 이라면 컴파일시 오류가 발생되게 됩니다.

  변수 ==  값1 일 때, 가장 맨 위의 case 의 명령이 실행됩니다. 위 예제의 경우 1 이 입력되면 case 1: 이 참이 되므로 그 case 안의 내용들이 모두 실행됩니다. 이 때 각 명령들을 모두 실행한 후 break 를 만나면 switch 문을 빠져 나가게 됩니다.


 


예를 들어서 1이 입력되었다면 case 1: 이 참이므로  printf("아이 맛있어 \n");  와 break; 가 실행되어 "아이 맛있어" 를 출력하고 break 를 통해 switch 문을 빠져 나가게 됩니다.


만약 변수 == 값2 라면 case 값1 은 실행되지 않고 case 값2 만 실행되게 됩니다.



또한 주의할 점으로는 '값' 에 위치하는 것들이 무조건 상수 이여야 한다는 것입니다. 만약 '값' 부분에 변수들이 오게된다면 오류가 발생하게 되는데 그 이유는 switch 문의 내부적인 처리 방법 때문입니다. 


마지막으로 switch 문의 default 는 if 문의 else 와 같은 역할을 합니다. 이도 저도 아닌 것들이 오는 case 이죠. 즉 위 예제의 경우 input 이 1 도 2 도 3 도 아닐 때 도달하는 경우가 됩니다.


 


아래는 코드 실행 화면입니다.


 


정말로 간단하게 알아본 C언어 switch문 사용법입니당


 

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 422 / 1 페이지
번호
제목
이름

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 82,042
2 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 51,280
3 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 32,591
4 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 28,199
5 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 23,416
6 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 22,310
7 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 13,822
8 no_profile 호롤롤로쪽지보내기 자기소개 아이디로 검색 전체게시물 13,500
9 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 13,246
10 no_profile 하늘2쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13,239
알림 0