C++ goto 语句
C++ 中的 goto 语句允许把控制条件转移到同一函数内的被标记的语句
在任何编程语言中,都不建议使用 goto 语句。 因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。 任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。
goto 语句语法格式
C++ 中 goto 语句的语法格式如下:
goto label; ... ... ... label: statement;
label 是识别被标记语句的标识符,可以是任何除 C++ 关键字以外的纯文本。 标记语句可以是任何语句,放置在标识符和冒号(:)后边
goto 语句流程图
C++ 中 goto 语句的流程图如下
范例 : goto 语句使用范例
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> using namespace std; int main () { // 局部变量声明 int cnt = 13; // do 循环执行 LOOP:do { if( cnt == 15) { // 跳过迭代 cnt = cnt + 1; goto LOOP; } cout << "cnt 的值:" << cnt << endl; cnt += 1; }while( cnt < 17 ); return 0; }
编译和运行以上范例,输出结果如下:
$ g++ main.cpp && ./a.out cnt 的值:13 cnt 的值:14 cnt 的值:16
goto 语句一个很好的作用是退出深嵌套例程
下面的代码使用 goto 语句跳出深嵌套
for(...) { for(...) { while(...) { if(...) goto stop; . . . } } } stop: cout << "Error in program.\n";
注释 goto 会导致一些额外的测试被执行。
一个简单的 break 语句在这里不会起到作用,因为它只会使程序退出最内层循环。