Heim  >  Artikel  >  Backend-Entwicklung  >  Warum funktionieren Case-Bereiche in C-Switch-Anweisungen nicht?

Warum funktionieren Case-Bereiche in C-Switch-Anweisungen nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-12 03:47:01979Durchsuche

Why Don't Case Ranges Work in C   Switch Statements?

So verwenden Sie Case-Bereiche in Switch-Anweisungen

Beim Arbeiten mit Switch-Anweisungen in C können Fehler auftreten, wenn Sie versuchen, Bereiche von zu erstellen Werte als Fälle. Dieses Problem tritt auf, weil Groß-/Kleinschreibungsbereiche nicht Teil der Standard-C-Syntax sind. Stattdessen handelt es sich um eine Erweiterung, die von bestimmten Compilern unterstützt wird.

Im bereitgestellten Code:

switch(score){
    case >= 100:
        cout << "a";
        break;
    case >= 50:
        cout << "b";
        break;
    ...
}

Der Compiler kann den Code aufgrund der Verwendung von >= und = nicht korrekt analysieren =. Um dieses Problem zu beheben, können Sie einen der folgenden Schritte ausführen:

  1. Verwenden Sie einen Compiler, der Groß-/Kleinschreibungsbereiche als Erweiterung unterstützt. Zu den Compilern, die diese Funktion unterstützen, gehören GCC, Clang und Intel C/C Compiler.
  2. Ersetzen Sie die Groß-/Kleinschreibungsbereiche durch Einzelfälle. Beispielsweise wird der folgende Code korrekt kompiliert:
switch(score){
    case 100:
        cout << "a";
        break;
    case 50:
        cout << "b";
        break;
    ...
}

Alternativ können Sie erwägen, ein anderes Programmierkonstrukt zu verwenden, beispielsweise eine if-else-Anweisung, um die Punktzahl auszuwerten:

if (score >= 100) {
    cout << "a";
} else if (score >= 50) {
    cout << "b";
} else {
    ...
}

Wenn Sie die Einschränkungen der Fallbereiche in C verstehen, können Sie Werte in Ihren Switch-Anweisungen effektiv verarbeiten.

Das obige ist der detaillierte Inhalt vonWarum funktionieren Case-Bereiche in C-Switch-Anweisungen nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn