>  기사  >  백엔드 개발  >  C Switch 문에서 사례 범위가 작동하지 않는 이유는 무엇입니까?

C Switch 문에서 사례 범위가 작동하지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-12 03:47:01982검색

Why Don't Case Ranges Work in C   Switch Statements?

Switch 문에서 대소문자 범위를 사용하는 방법

C에서 switch 문으로 작업할 때 다음 범위를 생성하려고 하면 오류가 발생할 수 있습니다. 케이스로서의 가치. 이 문제는 사례 범위가 표준 C 구문의 일부가 아니기 때문에 발생합니다. 대신 특정 컴파일러에서 지원하는 확장입니다.

제공된 코드에서:

switch(score){
    case >= 100:
        cout << "a";
        break;
    case >= 50:
        cout << "b";
        break;
    ...
}

>= 및 = 사용으로 인해 컴파일러가 코드를 올바르게 구문 분석할 수 없습니다. =. 이 문제를 해결하려면 다음 중 하나를 수행할 수 있습니다.

  1. 대소문자 범위를 확장으로 지원하는 컴파일러를 사용하세요. 이 기능을 지원하는 일부 컴파일러에는 GCC, Clang 및 Intel C/C 컴파일러가 포함됩니다.
  2. 대소문자 범위를 개별 사례로 바꿉니다. 예를 들어 다음 코드는 올바르게 컴파일됩니다.
switch(score){
    case 100:
        cout << "a";
        break;
    case 50:
        cout << "b";
        break;
    ...
}

또는 if-else 문과 같은 다른 프로그래밍 구성을 사용하여 점수를 평가할 수도 있습니다.

if (score >= 100) {
    cout << "a";
} else if (score >= 50) {
    cout << "b";
} else {
    ...
}

C의 경우 범위 제한을 이해하면 스위치 문의 값을 효과적으로 처리할 수 있습니다.

위 내용은 C Switch 문에서 사례 범위가 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.