趣谈goto语句

来源:互联网 发布:it consultis 编辑:程序博客网 时间:2024/06/06 18:47

自从提倡结构化设计以来,goto 就成了有争议的语句。首先,由于goto 语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto 语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句,例如:

goto state;String s1, s2; // 被goto 跳过int sum = 0; // 被goto 跳过⋯ar state:⋯

如果编译器不能发觉此类错误,每用一次goto 语句都可能留下隐患。很多人建议废除C++/C 的goto 语句,以绝后患。但实事求是地说,错误是程序员自己造成的,不是goto 的过错。goto 语句至少有一处可显神通,它能从多重循环体中咻地一下子跳到外面,用不着写很多次的break 语句; 例如

{ ⋯   { ⋯      { ⋯         goto error;      }   }}error:

就象楼房着火了,来不及从楼梯一级一级往下走,可从窗口跳出火坑。所以我们主张少用、慎用goto 语句,而不是禁用。


 


 

 

原创粉丝点击