Switch ステートメントでの値の範囲の選択
この例では、switch の無効な構文が原因でコンパイラでエラーが発生しています。声明。このコードは、「case >= value」および「case == value」という構文を使用して値の範囲を指定しようとしますが、これは C では標準ではありません。
この問題を解決するには、次の点に注意することが重要です。コンパイラは、C 言語の拡張機能として case 範囲をサポートします。値の範囲を指定する構文は、「case value ... value」です。
Case 範囲を含む改訂コード:
#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; }
コンパイラ サポートCase 範囲の場合:
Case 範囲はすべてのコンパイラでサポートされているわけではありません。この機能をサポートする既知のコンパイラーは次のとおりです。
コンパイラが case 範囲をサポートしていない場合は、switch ステートメントで値の範囲を選択するために別のアプローチを使用する必要があります。 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 中国語 Web サイトの他の関連記事を参照してください。