位置:首頁 > 高級語言 > C++教學 > C++ goto語句

C++ goto語句

goto語句提供無條件跳轉從跳轉到標記聲明相同的功能。

注意:使用goto語句不鼓勵使用,因為它使得難以追蹤程序的控製流程,使程序難以理解,難以修改。使用goto任何程序可以改寫,以便它不需要轉到。

語法

在C++中goto語句的語法是:

goto label;
..
.
label: statement;

其中:label是標識標簽的語句標識符。帶標簽的語句是前麵有一個標識符,後跟一個冒號(:)任何聲明。

流程圖:

C++ goto statement

例子:

#include <iostream>
using namespace std;
 
int main ()
{
   // Local variable declaration:
   int a = 10;

   // do loop execution
   LOOP:do
   {
       if( a == 15)
       {
          // skip the iteration.
          a = a + 1;
          goto LOOP;
       }
       cout << "value of a: " << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

當上述代碼被編譯和執行時,它產生了以下結果:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19

一個很好用使用goto語句的例子是從一個深度嵌套程序退出。例如,請考慮下麵的代碼片段:

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

省去了轉到將迫使要執行多個附加測試。一個簡單的break語句也不會工作,因為這隻會導致程序從最裡麵的循環退出。