【C++】goto语句
2017-02-02 15:13
106 查看
goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。
C++ 中 goto 语句的语法:
在这里,label 是识别被标记语句的标识符,可以是任何除 C++ 关键字以外的纯文本。标记语句可以是任何语句,放置在标识符和冒号(:)后边。
当上面的代码被编译和执行时,它会产生下列结果:
goto 语句一个很好的作用是退出深嵌套例程。例如,请看下面的代码片段:
消除 goto 会导致一些额外的测试被执行。一个简单的 break 语句在这里不会起到作用,因为它只会使程序退出最内层循环。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。
语法
C++ 中 goto 语句的语法:goto label; .. . label: statement;
在这里,label 是识别被标记语句的标识符,可以是任何除 C++ 关键字以外的纯文本。标记语句可以是任何语句,放置在标识符和冒号(:)后边。
流程图
实例
#include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // do 循环执行 LOOP:do { if( a == 15) { // 跳过 ce69 迭代 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++拾遗录--关于goto和jmp语句浅析
- c/c++ goto 语句
- C++中GoTo语句的合理利用
- C++流程控制中用于跳转的return和goto语句学习教程
- C++ goto语句的理解与应用
- C++跳转语句之Goto对变量定义的影响详解
- C++跳转语句之goto
- C/C++/Java goto语句的使用
- 关于goto语句能不能从复杂的嵌套循环判断中跳出去的问题讨论
- 几个c++语句的汇编实现(H1指令)
- C++ 中使用 goto 增强 break 和 continue
- (22)'c++:COMPLETE REFERENCE' 第一部分 第三章(语句) 第三节(2)
- LCC编译器的源程序分析(39)goto语句
- C#与C++对语句(i++ + i++)编译的不同
- (23)'c++:COMPLETE REFERENCE' 第一部分 第三章(语句) 第四节
- 关于C++中std::out语句
- [引]C#参考 跳转语句(break,continue,goto,return,throw)
- (19)'c++:COMPLETE REFERENCE' 第一部分 第三章(语句) 第一节
- 高质量C++/C编程指南 - 第4章 表达式和基本语句
- C语言函数的出口:return语句(高质量c/c++编程指南)