现在的位置: 首页 > 综合 > 正文

趣谈goto语句

2013年10月11日 ⁄ 综合 ⁄ 共 410字 ⁄ 字号 评论关闭

自从提倡结构化设计以来,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 语句,而不是禁用。

 

 

 

抱歉!评论已关闭.