在 Switch 语句中选择值范围
在提供的示例中,编译器由于 switch 中的语法无效而遇到错误陈述。该代码尝试使用语法“case >= value”和“case == value”来指定值的范围,这在 C 中不是标准的。
要解决此问题,需要注意的是,某些编译器支持大小写范围作为 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; }
编译器支持对于大小写范围:
并非所有编译器都支持大小写范围。以下是一些支持此功能的已知编译器:
如果您的编译器不支持大小写范围,您将需要使用不同的方法在 switch 语句中选择值范围。一种选择是使用一系列嵌套的 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中文网其他相关文章!