do while(false)
来源:互联网 发布:js获取一个id的值 编辑:程序博客网 时间:2024/05/12 11:13
使用do...break...while简化多级条件判断的结构。
如果你写过不少代码,那么一定会不时遇到类似下的情况:
假设要找到文件A,复制该文件为B;然后打开B文件,然后往B文件内写入一些内容;最后在写入成功后,我们需要再进行一些相关操作。
在此过程,遇到以下情况时将放弃后续的操作,认为是操作失败:
1、如果A文件不存在;
2、如果B文件已经存在,并且询问用户是否覆盖时,用户回答“不”;
3、无法复制出B文件;
4、无法打开B文件;
5、无法写入B文件;
6、无法正常关闭B文件。
用伪代码写该段程序为:
可能有些操作和判断可以同时处理,但这个程序的繁琐仍然不可避免,而现实中程序的复杂性往往要远过于此例。从语法上看,这个例子没有任何错误,但它的一层套一层的条件判断却让人难以书写,阅读,调试,在复杂的情况就容易造成人为的错误(比如最马虎的,花括号匹配不对等……)。
同样一段代码“程序老鸟”是这样写的:
看,代码是不是“直”了很多?这里用了do..while,可是根本不是为了循环,而是为了使用它的break功能。每当有操作不成功,就直接用break跳出循环。所以循环条件总是一个“永假” false。
在一个程序中,这种结构相当的多,为了更加一步淡化while的原来的循环用途,我们非常值得在代码加入两个共用的宏:
#define BEG_DOWHILE do {
#define END_DOWHILE } while(false);
这里举的是do...while结构,在某些情况下,可以使用while...来实现类似功能。
do
{
if(!pHeart->LoginLicense())
{
break;
}
if(!pHeart->MakeHeartBeat())
{
break;
}
} while (false);
return 0;
- 顶
- 0
- 踩
- do while(false)妙用
- do{}while(false)
- 关于do{...}while(FALSE);
- do while(FALSE)
- do{ } while(false)
- do{}while(false)
- do while(false)
- do while(false)
- do{}while(FALSE)知多少
- do...while(false)的妙用
- 关于do while(false)
- 关于do while(false)
- do{} while(false) 的妙用
- 关于do while(false)
- do{ ;}while(false)技巧揭密
- do{...}while(false)的用法
- do{ ... }while(false) 适用场景
- do...while(0) do...while(false)的妙用
- 游戏编程中的人工智能技术-扫雷机系列
- ExpandableListView中包含多个group,想要展开一个group时,其他group都关闭:
- 安卓jni的so崩溃调试
- Node.js Buffer(缓冲区)
- 走在自我提升的道路上
- do while(false)
- 从别的activity跳入viewpager指定页面
- 千万级并发实现的秘密:内核不是解决方案,而是问题所在!
- centos6.5安装ovs 2.5.0并解决db.sock问题
- 设置tableviewcell 从分割线宽度从左边开始
- Java反射浅谈
- express处理文件下载
- CSS基础
- HackRF One硬件架构及参数简介