Heim > Artikel > Backend-Entwicklung > Wie implementiert man bereichsbasierte Fälle in einer C-Switch-Anweisung?
Auswählen eines Wertebereichs in einer Switch-Anweisung
Im bereitgestellten Beispiel stößt der Compiler auf Fehler aufgrund einer ungültigen Syntax im Switch Stellungnahme. Der Code versucht, Wertebereiche mithilfe der Syntax „case >= value“ und „case == value“ anzugeben, was in C nicht Standard ist.
Um das Problem zu beheben, ist es wichtig zu beachten, dass einige Compiler unterstützen Fallbereiche als Erweiterung der C-Sprache. Die Syntax zum Angeben eines Wertebereichs lautet „Fallwert ... Wert“.
Überarbeiteter Code mit Groß-/Kleinschreibungsbereichen:
#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; }
Compiler-Unterstützung für Case-Bereiche:
Case-Bereiche werden nicht in allen Compilern unterstützt. Hier sind einige bekannte Compiler, die diese Funktion unterstützen:
Wenn Ihr Compiler keine Groß-/Kleinschreibungsbereiche unterstützt, müssen Sie einen anderen Ansatz für die Auswahl eines Wertebereichs in einer Switch-Anweisung verwenden. Eine Möglichkeit besteht darin, eine Reihe verschachtelter if-else-Anweisungen wie folgt zu verwenden:
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"; }
Das obige ist der detaillierte Inhalt vonWie implementiert man bereichsbasierte Fälle in einer C-Switch-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!