산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

switch…case in C(C의 Switch 문) 및 예제

C에서 Switch 문이란 무엇입니까?

C의 switch 문 변수의 값을 테스트하고 여러 사례와 비교합니다. 대소문자 일치가 발견되면 해당 특정 사례와 관련된 명령문 블록이 실행됩니다.

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

대소문자가 일치하지 않으면 기본 문이 실행되고 제어가 스위치 블록을 벗어납니다.

이 튜토리얼에서는 배우게 될 것입니다-

대소문자 전환

'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;

Switch 명령문 순서도

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

C의 스위치 케이스 예

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

#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

  1. 주어진 프로그램에서 값 8로 초기화된 변수 num을 설명했습니다.
  2. 스위치 구조는 변수 num에 저장된 값을 비교하고 일치하는 대소문자와 관련된 명령문 블록을 실행하는 데 사용됩니다.
  3. 이 프로그램에서 변수 num에 저장된 값이 8이므로 케이스 레이블이 8인 케이스를 스위치가 실행합니다. 케이스를 실행한 후 제어가 스위치에서 빠지고 프로그램이 종료됩니다. 출력 화면에 값을 출력하여 성공적인 결과를 얻습니다.

변수 num의 값을 변경하고 출력의 변화를 확인하십시오.

예를 들어, 기본값인 다음 프로그램을 고려합니다.

#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 문을 도입해야 합니다.

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

다음 switch 문을 고려합니다.

#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의 중첩 스위치

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

우리는 사용자가 자신의 ID를 입력하는 다음 프로그램을 고려합니다. ID가 유효하면 암호를 입력하라는 메시지가 표시되고, 암호가 정확하면 프로그램은 사용자의 이름을 인쇄하고, 그렇지 않으면 프로그램은 Incorrect를 인쇄합니다. 암호 및 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

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

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

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

이 문제에 대한 해결책은 switch 문입니다.

switch 문 규칙

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

요약

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

C 언어

  1. C# switch 문
  2. C++ do… while 루프 예제
  3. EXAMPLE이 있는 C++ Switch Case 문
  4. 예제가 있는 C++ 포인터
  5. 예제를 사용한 C++ 연산자 오버로딩
  6. 프로그램 예제가 있는 C++ 함수
  7. 예제가 있는 C# 컬렉션 자습서
  8. Python Print() 문:예제로 인쇄하는 방법
  9. 예제가 있는 Python 문자열 count()
  10. 예제가 있는 Python round() 함수