Latest web development tutorials

C++ goto 語句

C++ 循環 C++循環

goto語句允許把控制無條件轉移到同一函數內的被標記的語句。

注意:在任何編程語言中,都不建議使用goto語句。因為它使得程序的控制流難以跟踪,使程序難以理解和難以修改。 任何使用goto 語句的程序可以改寫成不需要使用goto 語句的寫法。

語法

C++中goto語句的語法:

goto label;
..
.
label: statement;

在這裡,label是識別被標記語句的標識符,可以是任何除C++關鍵字以外的純文本。標記語句可以是任何語句,放置在標識符和冒號(:)後邊。

流程圖

C++ goto 語句

實例

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   LOOP:do
   {
       if( a == 15)
       {
          // 跳过迭代
          a = a + 1;
          goto LOOP;
       }
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

當上面的代碼被編譯和執行時,它會產生下列結果:

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

goto 語句一個很好的作用是退出深嵌套例程。 例如,請看下面的代碼片段:

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

消除goto會導致一些額外的測試被執行。 一個簡單的break語句在這裡不會起到作用,因為它只會使程序退出最內層循環。

C++ 循環 C++循環