mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Wednesday, March 21, 2007

C언어] switch 문 (스위치) 사용법 예제; switch-case-default Statement x함수


switch문이란, 조건문의 일종인데, 여러 개의 if~else 문을 대신하여 간결하게 작성할 때 사용하는 것입니다. if~else 문이 중첩되어 있으면 가독성이 떨어지기 때문에 스위치문이 필요합니다.

그러나 switch문 다음의 괄호()에는 "x <= 0" 이런 식의 판단문이 들어갈 수는 없고, 정수형이나 문자형(char)의 숫자만 들어갈 수 있는 제약이 있습니다. double 등의 실수는 안되고 error C2450: switch expression of type 'double' is illegal 이런 에러가 납니다.

switch는 "함수"가 아니고 "키워드"입니다.

  switch (정수) {
    case 상수 : 실행문; break;
    case 상수 : 실행문; break;
    case 상수 : 실행문; break;
    case 상수 : 실행문; break;

    default : 실행문; break;
  }


스위치문에서 주의해야 할 점은 각 case문 끝에 break; 를 꼭 붙여야 한다는 것입니다. break; 가 없으면, 그 아래쪽의 case문들까지 모두 실행되어 버립니다. break;를 만날 때까지 멈추지 않고 계속 실행됩니다.

의도적으로 break;를 생략한 경우가 아니라, 실수로 누락했을 때는 소스가 폭주하여 위험한 에러가 발생할 수 있습니다. 따라서 우선 무조건 break;를 붙여 놓고 소스의 흐름을 검토하는 것이 안전합니다.

default 라는 것은, 위의 case문들 중에서 어느 것도 해당되지 않을 때 실행할 코드입니다. 필요하지 않다면 default문이 없어도 됩니다.


switch문 사용 방법 예제 소스


소스 파일명: example.cpp
(※ 스크롤 박스 사용법: 박스 안을 마우스로 클릭한 후, 키보드의 좌우 화살표키를 누르면 양옆으로 움직일 수 있습니다. 박스에서 다시 나오려면, 박스 바깥의 아무곳이나 클릭하면 됩니다.)
#include <stdio.h>
#include <conio.h> // getch()
#include <ctype.h> // tolower()


int main(void) {

  int i = 1;

/*
i 의 값이 1일 경우에는 "자장면"이 출력
i 의 값이 2일 경우에는 break가 없기에
군만두"와 "탕수육"이 한꺼번에 같이 출력

i 의 값이 3일 경우에는 "탕수육"이 출력
i 의 값이 4일 경우에는 "짬뽕"이 출력
만약 i 의 값이 그밖의 숫자일 경우에는 "그런 음식은 없습니다."가 출력
*/

  switch (i) {
    case 1 : printf("자장면\n"); break;
    case 2 : printf("군만두\n"); // 아래의 탕수육도 실행됨
    case 3 : printf("탕수육\n"); break;
    case 4 : printf("짬뽕\n"); break;

    default : printf("그런 음식은 없습니다."); break;
  }



  // 또한 아래와 같이, 문자(char)형으로도 판단할 수 있음
  // 다만 double, float 같은 실수형은 불가능

  char ch = (char) getch(); // 키보드에서 문자 1개 입력 받기
  // 글자를 소문자로 변환
  // (대소문자 구분 없이 입력받기 위해)
  ch = (char) tolower(ch);


  switch (ch) {
    case 'a'  : printf("A를 누르셨군요\n");
                break;
    case 'b'  : printf("B를 누르셨군요\n");
                break;
    case 'c'  : printf("C를 누르셨군요\n");
                break;
    case '9'  : printf("9를 누르셨군요\n");
                break;
    case 0x0D : printf("Enter키를 누르셨군요\n");
                break;
    case 0x1B : printf("Esc키를 누르셨군요\n");
                break;

    default   : printf("그밖의 문자...\n");
                break;
  }



  return 0;
}





tag: cpp
C언어 | C/C++ (Visual C++) 프로그래밍

1 Comments:
At September 19, 2016 at 9:02 PM, Blogger Unknown said...


 

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top