Maison > développement back-end > C++ > Comment implémenter des cas basés sur une plage dans une instruction C Switch ?

Comment implémenter des cas basés sur une plage dans une instruction C Switch ?

Linda Hamilton
Libérer: 2024-11-13 10:34:02
original
1067 Les gens l'ont consulté

How to Implement Range-Based Cases in a C   Switch Statement?

Sélection d'une plage de valeurs dans une instruction Switch

Dans l'exemple fourni, le compilateur rencontre des erreurs dues à une syntaxe non valide dans le switch déclaration. Le code tente de spécifier des plages de valeurs en utilisant la syntaxe "case >= value" et "case == value", qui n'est pas standard en C .

Pour résoudre le problème, il est important de noter que certains les compilateurs prennent en charge les plages de cas en tant qu'extension du langage C. La syntaxe pour spécifier une plage de valeurs est « valeur de cas… valeur ».

Code révisé avec plages de cas :

#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;
}
Copier après la connexion

Prise en charge du compilateur pour les plages de cas :

Les plages de cas ne sont pas prises en charge dans tous les compilateurs. Voici quelques compilateurs connus qui prennent en charge cette fonctionnalité :

  • GCC 4.9 et versions ultérieures
  • Clang 3.5.1 et versions ultérieures
  • Compilateur Intel C/C 13.0.1

Si votre compilateur ne prend pas en charge les plages de cas, vous devrez utiliser une approche différente pour sélectionner une plage de valeurs dans une instruction switch. Une option consiste à utiliser une série d'instructions if-else imbriquées comme suit :

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";
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal