尴尬的goto语句
来源:互联网 发布:java.培训班哪个好点 编辑:程序博客网 时间:2024/04/29 14:11
以前看过的effect xxx之类的书,总是会少不了这一条:避免使用goto语句
理由很简单,你一段代码一会跳这里,一会跳那里,跳来跳去就晕了,犹如在迷宫之中
看起来是很有道理,但是在实际运用中,不大会有人这么乱跳
有些情况下,goto反而是一种更加优雅的方式。比如:
1.多重循环
跳出循环用break,如果跳出多重循环呢?这种例子屡见不鲜,大家也都有自己的应对方式:标志变量。
但是如果用goto的话是不是会更直接更易读呢?
在Java中,仅此情况允许使用goto,是很有道理的。
2.资源回收
在我看来这种情况比多重循环更加典型。
假设一种很常见的情景:你在函数开始部分initialize一大堆模块,又malloc了不少堆内存,你需要在函数结尾去释放他们。
但是在函数的过程中有很多步骤,一步失败就停止执行并退出。
这时如果直接return的话,要在return之前写很多释放的语句,有n个步骤就有n个return,释放语句要写n遍,这简直是噩梦。
在我看来,最优雅的方式就是在函数结尾做一个exit标志,后面是释放语句,哪个步骤如果执行失败,就直接goto exit,简洁易懂
在我看来,没有不好的语法,只有不好的程序员。现在提倡不用的一些语法,也不是绝对的,只是说很多人在这里栽过跟头,如果你没有十足的把握,还是尽量不要用,免得以后陷入debug的泥潭不能自拔
- 尴尬的goto语句
- GOTO 语句的魅力
- goto语句的使用
- 古老的goto语句
- delphi的goto语句
- goto语句的用法
- 有趣的goto语句
- 21、goto语句的使用
- 取代goto语句的方法
- 有争议的goto语句
- delphi Goto 语句的使用
- 关于goto语句的使用
- goto语句的“跳跃”问题
- c语言的goto语句
- 关于goto语句的争论
- goto语句的简单使用
- goto语句的使用案例
- goto语句学习的实例
- 开篇
- C#实现将一个类序列化存储在数据库中(转)
- asp.net 学习笔记之一 密码最短长度为 7,其中必须包含以下非字母
- 做人的礼仪
- 华为C语言面试题 深圳华为面试
- 尴尬的goto语句
- C/C++ 程序设计员应聘常见面试试题深入剖析
- C/C++程序员面试题
- Javascript放大镜的特效
- C语言获取系统时间的几种方式
- [转]Linux下查看oracle是否启动
- c语言fflush(stdin)的重要性
- NIOS II常用函数详解
- 理想