> 백엔드 개발 > C++ > C Switch 문에서 범위 기반 사례를 구현하는 방법은 무엇입니까?

C Switch 문에서 범위 기반 사례를 구현하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-13 10:34:02
원래의
1051명이 탐색했습니다.

How to Implement Range-Based Cases in a C   Switch Statement?

Switch 문에서 값 범위 선택

제공된 예에서는 스위치의 잘못된 구문으로 인해 컴파일러에서 오류가 발생합니다. 성명. 코드는 C에서 표준이 아닌 "case >= value" 및 "case == value" 구문을 사용하여 값 범위를 지정하려고 시도합니다.

문제를 해결하려면 다음 사항에 유의하는 것이 중요합니다. 컴파일러는 C 언어의 확장으로 사례 범위를 지원합니다. 값 범위를 지정하는 구문은 "case value ... value"입니다.

대소문자 범위가 포함된 수정된 코드:

#include <iostream>
using namespace std;

int main() {
  int score;

  // Get score from user
  cout << "Score: ";
  cin >> score;

  // Switch statement with case ranges
  switch (score) {
    case 0:
      cout << "a";
      break;
    case 0 ... 9:
      cout << "b";
      break;
    case 11 ... 24:
      cout << "c";
      break;
    case 25 ... 49:
      cout << "d";
      break;
    case 50 ... 100:
      cout << "e";
      break;
    default:
      cout << "BAD VALUE";
      break;
  }

  cout << endl;
  return 0;
}
로그인 후 복사

컴파일러 지원 케이스 범위:

케이스 범위는 모든 컴파일러에서 지원되지 않습니다. 다음은 이 기능을 지원하는 알려진 컴파일러입니다.

  • GCC 4.9 이상
  • Clang 3.5.1 이상
  • Intel C/C Compiler 13.0.1

컴파일러가 대소문자 범위를 지원하지 않는 경우 스위치 문에서 값 범위를 선택하기 위해 다른 접근 방식을 사용해야 합니다. 한 가지 옵션은 다음과 같이 일련의 중첩된 if-else 문을 사용하는 것입니다.

if (score >= 100) {
  cout << "a";
} else if (score >= 50) {
  cout << "b";
} else if (score >= 25) {
  cout << "c";
} else if (score >= 10) {
  cout << "d";
} else if (score > 0) {
  cout << "e";
} else if (score == 0) {
  cout << "f";
} else {
  cout << "BAD VALUE";
}
로그인 후 복사

위 내용은 C Switch 문에서 범위 기반 사례를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿