首页 > 后端开发 > 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 语句中选择值范围

在提供的示例中,编译器由于 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;
}
登录后复制

编译器支持对于大小写范围:

并非所有编译器都支持大小写范围。以下是一些支持此功能的已知编译器:

  • GCC 4.9 及更高版本
  • Clang 3.5.1 及更高版本
  • Intel C/C 编译器 13.0.1

如果您的编译器不支持大小写范围,您将需要使用不同的方法在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板