位置:首页 > 高级语言 > 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语句也不会工作,因为这只会导致程序从最里面的循环退出。