C++ goto-Anweisung

C++ Schleifen

gotoDie Anweisung ermöglicht es, die Kontrolle bedingungslos an eine beschriftete Anweisung innerhalb derselben Funktion zu übertragen.

Hinweis:In jeder Programmiersprache wird die Verwendung der goto-Anweisung nicht empfohlen. Denn sie macht den Kontrollfluss des Programms schwer nachvollziehbar, wodurch das Programm schwer zu verstehen und schwer zu ändern ist. Jedes Programm, das die goto-Anweisung verwendet, kann so umgeschrieben werden, dass es die goto-Anweisung nicht benötigt.

Syntax

In C++goto Syntax der Anweisung:

goto label;
..
.
label: statement;

Hier,labelEs ist ein Bezeichner, der eine beschriftete Anweisung kennzeichnet, und kann ein beliebiger Klartext außer C++-Schlüsselwörtern sein. Eine beschriftete Anweisung kann eine beliebige Anweisung sein, die nach dem Bezeichner und einem Doppelpunkt (:) steht.

Flussdiagramm

C++ goto 语句

Beispiel

Beispiel

#include <iostream>
using namespace std;
 
int main ()
{
   // Lokale Variablendeklaration
   int a = 10;

   // Ausführung der do-Schleife
   LOOP:do
   {
       if( a == 15)
       {
          // Iteration überspringen
          a = a + 1;
          goto LOOP;
       }
       cout << "Wert von a:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

Eine gute Verwendung der goto-Anweisung ist das Verlassen tief verschachtelter Routinen. Betrachten Sie zum Beispiel das folgende Codefragment:

for(...) {
   for(...) {
      while(...) {
         if(...) goto stop;
         .
         .
         .
      }
   }
}
stop:
cout << "Error in program.\n";

BeseitigengotoDies führt dazu, dass einige zusätzliche Tests ausgeführt werden. Eine einfachebreakAnweisung funktioniert hier nicht, weil sie nur bewirkt, dass das Programm die innerste Schleife verlässt.

C++ Schleifen

Weitere Erweiterungen