设为首页 加入收藏

TOP

3.1.7 无条件转移
2013-10-07 16:05:56 来源: 作者: 【 】 浏览:69
Tags:3.1.7 无条件 转移

3.1.7  无条件转移

if语句提供了根据指定条件选择执行哪组语句的灵活性,因此程序中语句的执行顺序因数值的不同而不同。与此相反,goto语句却很死板。该语句允许无条件转移到指定的程序语句。位于转移目的地的语句必须用某个语句标签来标识,这种标签也是按照定义变量名的规则来定义的标识符。语句标签后面应该跟一个冒号,还应该放在需要标记的语句前面。下面是一条被标记语句的示例。

  1. myLabel: cout << "myLabel branch has been activated" << endl

该语句的标签是myLabel,无条件转移到这条语句的语句如下所示:

  1. goto myLabel; 

只要可能,就应该避免在程序中使用goto语句。这些goto语句往往导致错综复杂的、难以理解的代码。

理论上,程序中的goto语句不是必需的,因为总有替代goto语句的方法,所以某些程序员声称应该永远不使用goto语句。笔者不同意这样的极端观点。goto语句毕竟是一条合法语句,而且在有些场合下使用起来很方便,例如必须从一个深度嵌套的循环(下一节将介绍)中退出时。但是,笔者还是建议仅当能够看到明显优于其他可用选择时才使用goto;否则,可能得到难以理解、更难以维护的、错综复杂且容易出错的代码。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.1.6 switch语句(2) 下一篇2.4 在LINUX C++中运行第一个程序..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)