Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich in meiner C-Switch-Anweisung den Fehler „Jump to case label“ und wie kann ich ihn beheben?

Warum erhalte ich in meiner C-Switch-Anweisung den Fehler „Jump to case label“ und wie kann ich ihn beheben?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 22:33:02900Durchsuche

Why do I get a

Fehlerbehebung bei Switch-Anweisungs-Jump-Label-Fehlern

In C führt die Verwendung von Switch-Anweisungen häufig zu Kompilierungsfehlern wie „Jump to case label“. Dies tritt auf, wenn in einem späteren Fall versehentlich auf eine in einem Fall deklarierte Variable zugegriffen wird.

Bedenken Sie den folgenden Code:

<code class="cpp">int main() {
    int choice;
    std::cin >> choice;
    switch (choice) {
      case 1:
        int i = 0;
        break;
      case 2: // error here
    }
}</code>

In diesem Fall tritt der Compilerfehler auf, weil die Variable i ist in Fall 1 deklariert. In Fall 2 ist es jedoch zugänglich, auch wenn es nicht initialisiert ist.

Um dieses Problem zu beheben, schließen Sie die Fallbezeichnung in geschweifte Klammern { } ein. Dadurch wird sichergestellt, dass auf die Variable nur im Rahmen des Falls zugegriffen werden kann, in dem sie initialisiert wird.

<code class="cpp">int main() {
    int choice;
    std::cin >> choice;
    switch (choice) {
      case 1: {
        int i = 0;
        break;
      }
      case 2:
        break;
    }
}</code>

Im Wesentlichen verwenden Switch-Anweisungen goto-Anweisungen, um zu bestimmten Fällen zu springen. Wenn eine Variable in einem Fall deklariert wird und die Anweisung zu einem anderen Fall springt, existiert die Variable zwar noch, wird aber möglicherweise nicht initialisiert. Durch die Verwendung von geschweiften Klammern wird für jeden Fall ein separater Bereich erstellt und dessen Variablen isoliert.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meiner C-Switch-Anweisung den Fehler „Jump to case label“ und wie kann ich ihn beheben?. 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