首頁 >後端開發 >C++ >如何在 C Switch 語句中實現基於範圍的情況?

如何在 C Switch 語句中實現基於範圍的情況?

Linda Hamilton
Linda Hamilton原創
2024-11-13 10:34:021079瀏覽

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

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";
}
如果您的編譯器不支援大小寫範圍,您將需要使用在switch 語句中選擇一系列值的不同方法。一種選擇是使用一系列嵌套的 if-else 語句,如下所示:

以上是如何在 C Switch 語句中實現基於範圍的情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn