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; }
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é :
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"; }
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!