스위치…C의 사례(C의 스위치 문)와 예제

C의 Switch 문이란 무엇입니까?

C의 스위치 문 변수 및 구성요소의 값을 테스트합니다.ares 여러 가지 경우가 있습니다. 케이스 일치가 발견되면 해당 특정 케이스와 관련된 명령문 블록이 실행됩니다.

스위치 블록의 각 케이스에는 식별자라고 하는 서로 다른 이름/번호가 있습니다. 사용자가 제공한 값은 일치하는 항목을 찾을 때까지 스위치 블록 내부의 모든 사례와 비교됩니다.

대소문자 일치가 발견되지 않으면 기본 문이 실행되고 제어는 스위치 블록 밖으로 나갑니다.

대소문자 전환 구문

'C' 프로그램에서 switch-case가 구현되는 방법에 대한 일반적인 구문은 다음과 같습니다.

switch( expression )
{
	case value-1:
			Block-1;
			Break;
	case value-2:
			Block-2;
			Break;
	case value-n:
			Block-n;
			Break;
	default:
			Block-1;
			Break;
}
Statement-x;
  • 표현식은 정수 표현식이거나 문자 표현식일 수 있습니다.
  • 값-1, 2, n은 각 케이스를 개별적으로 식별하는 데 사용되는 케이스 레이블입니다. 케이스 라벨은 프로그램을 실행하는 동안 문제를 일으킬 수 있으므로 동일해서는 안 된다는 점을 기억하세요. '1'과 동일한 라벨을 가진 두 개의 케이스가 있다고 가정합니다. 그런 다음 프로그램을 실행하는 동안 프로그램이 두 번째 사례를 실행하기를 원하더라도 먼저 나타나는 사례가 실행됩니다. 이로 인해 프로그램에 문제가 발생하고 원하는 출력이 제공되지 않습니다.
  • 케이스 레이블은 항상 콜론( : )으로 끝납니다. 이러한 각 사례는 블록과 연관되어 있습니다.
  • 블록은 특정 사례에 대해 그룹화된 여러 명령문일 뿐입니다.
  • 스위치가 실행될 때마다 test-expression의 값은 스위치 내부에 정의된 모든 케이스와 비교됩니다. 테스트 표현식에 값 4가 포함되어 있다고 가정합니다. 이 값은 프로그램에서 레이블 XNUMX가 발견될 때까지 모든 케이스와 비교됩니다. 사례가 발견되자마자 해당 특정 사례와 관련된 명령문 블록이 실행되고 제어가 스위치 밖으로 나갑니다.
  • 각 케이스의 break 키워드는 특정 케이스의 끝을 나타냅니다. 각 케이스에 중단을 넣지 않으면 특정 케이스가 실행되더라도 C의 스위치는 끝에 도달할 때까지 모든 케이스를 계속 실행합니다. 이런 일이 일어나서는 안 됩니다. 그러므로 우리는 항상 각 경우에 break 키워드를 넣어야 합니다. Break는 일단 실행되면 케이스를 종료하고 컨트롤은 스위치에서 빠져 나옵니다.
  • 기본 사례는 선택 사항입니다. test-expression의 값이 스위치 내부의 어떤 경우와도 일치하지 않을 때마다 기본값이 실행됩니다. 다른wise, 스위치에 기본값을 쓸 필요는 없습니다.
  • 스위치가 실행되면 제어는 명령문-x로 이동하고 프로그램 실행은 계속됩니다.

Switch 명령문 흐름도

FOLLOwing 다이어그램은 스위치 케이스에서 케이스가 선택되는 방법을 보여줍니다.

Switch 명령문 흐름도
스위치 작동 방식

C의 스위치 케이스 예

FOLLOwing 프로그램은 스위치 사용을 보여줍니다.

#include <stdio.h>
    int main() {
        int num = 8;
        switch (num) {
            case 7:
                printf("Value is 7");
                break;
            case 8:
                printf("Value is 8");
                break;
            case 9:
                printf("Value is 9");
                break;
            default:
                printf("Out of range");
                break;
        }
        return 0;
    }

출력:

Value is 8

C의 스위치 케이스 예

  1. 주어진 프로그램에서 우리는 초기화를 설명했습니다. 변수 값이 8인 숫자입니다.
  2. 스위치 구성은 변수 num에 저장된 값을 비교하고 일치하는 케이스와 관련된 명령문 블록을 실행하는 데 사용됩니다.
  3. 이 프로그램에서는 변수 num에 저장된 값이 8이므로 스위치는 Case-Label이 XNUMX인 케이스를 실행합니다. 케이스를 실행한 후 제어는 스위치에서 벗어나 다음과 같은 성공적인 결과로 프로그램이 종료됩니다. 출력 화면에 값을 인쇄합니다.

변수 num의 값을 변경해 보고 출력의 변화를 확인하세요.

예를 들어, 우리는 다음을 고려합니다.wing 기본값은 다음과 같습니다.

#include <stdio.h>
int main() {
int language = 10;
  switch (language) {
  case 1:
    printf("C#\n");
    break;
  case 2:
    printf("C\n");
    break;
  case 3:
    printf("C++\n");
    break;
  default:
    printf("Other programming language\n");}}

출력:

Other programming language

C에서 스위치 케이스로 작업할 때 여러 케이스를 고유한 레이블로 그룹화합니다. switch 문의 끝에서 분기하려면 각 경우에 break 문을 도입해야 합니다.

선택적 기본 사례는 다른 일치 항목이 없을 때 실행됩니다.

우리는 다음을 고려합니다wing 스위치 문:

#include <stdio.h>
int main() {
int number=5;
switch (number) {
  case 1:
  case 2:
  case 3:
    printf("One, Two, or Three.\n");
    break;
  case 4:
  case 5:
  case 6:
    printf("Four, Five, or Six.\n");
    break;
  default:
    printf("Greater than Six.\n");}}

출력:

Four, Five, or Six.

C의 중첩 스위치

In C, 외부 스위치에 내부 스위치를 내장할 수 있습니다. 또한 내부 스위치와 외부 스위치의 대소문자 상수는 충돌 없이 공통 값을 가질 수 있습니다.

우리는 다음을 고려합니다wing 사용자가 자신의 ID를 입력하는 프로그램입니다. ID가 유효하면 비밀번호를 입력하라는 메시지가 표시되고, 비밀번호가 정확하면 프로그램은 사용자의 이름을 인쇄합니다.wise , 프로그램은 잘못된 비밀번호를 인쇄하고 ID가 존재하지 않으면 프로그램은 잘못된 ID를 인쇄합니다.

#include <stdio.h>
int main() {
        int ID = 500;
        int password = 000;
        printf("Plese Enter Your ID:\n ");
        scanf("%d", & ID);
        switch (ID) {
            case 500:
                printf("Enter your password:\n ");
                scanf("%d", & password);
                switch (password) {
                    case 000:
                        printf("Welcome Dear Programmer\n");
                        break;
                    default:
                        printf("incorrect password");
                        break;
                }
                break;
            default:
                printf("incorrect ID");
                break;
        }
}

출력:

Plese Enter Your ID:
 500
Enter your password:
 000
Welcome Dear Programmer

C의 중첩 스위치

  1. 주어진 프로그램에서 우리는 초기화된 두 개의 변수, 즉 ID와 비밀번호를 설명했습니다.
  2. 외부 스위치 구성은 변수 ID에 입력된 값을 비교하는 데 사용됩니다. 일치하는 사례(ID==500인 경우)와 관련된 문 블록을 실행합니다.
  3. 대소문자가 일치하여 블록문이 실행되면 내부 스위치를 사용하여 변수 비밀번호에 입력된 값을 비교하고 일치된 대소문자(password==000인 경우)에 연결된 명령문을 실행합니다.
  4. 기타wise, 스위치 케이스는 기본 케이스를 트리거하고 프로그램 개요에 관한 적절한 텍스트를 인쇄합니다.

스위치 케이스가 필요한 이유는 무엇입니까?

한 가지 잠재적인 문제가 있습니다. if-else 문 어느 회사야?plex대체 경로의 수가 증가할 때마다 프로그램의 성능이 증가합니다. 프로그램에서 여러 if-else 구문을 사용하면 프로그램을 읽고 이해하기 어려워질 수 있습니다. 때로는 프로그램을 직접 작성한 개발자를 혼란스럽게 할 수도 있습니다.

이 문제에 대한 해결책은 스위치 문입니다.

switch 문의 규칙

  • 표현식은 항상 결과에 따라 실행되어야 합니다.
  • 케이스 레이블은 상수이고 고유해야 합니다.
  • 케이스 라벨은 콜론( : )으로 끝나야 합니다.
  • 각각의 경우에는 break 키워드가 있어야 합니다.
  • 기본 레이블은 하나만 있을 수 있습니다.
  • 여러 개의 스위치 문을 중첩할 수 있습니다.

요약

  • 스위치는 '에서 의사 결정 구성 요소입니다.C. '
  • 스위치는 여러 결정이 관련된 프로그램에서 사용됩니다.
  • 스위치에는 실행 가능한 테스트 표현식이 포함되어야 합니다.
  • 각 케이스에는 break 키워드가 포함되어야 합니다.
  • 케이스 라벨은 상수이고 고유해야 합니다.
  • 기본값은 선택 사항입니다.
  • 여러 개의 스위치 문이 서로 중첩될 수 있습니다.