今天看公司demo代码看到很多地方用到一个空循环do{}while(0)。初看觉得这样写没有任何意义,do花括号内的代码执行一次循环就退出了,和直接去掉循环没什么区别吧。通过认真观察发现这其实是个很有用的编程技巧。先来看一段代码:
int a=1,b=0;
do{
if(!a)
break;
else
b = a;
}while(0);
看上面的代码发现,用这样一个循环其实是为了能在条件不满足时直接跳出循环,不执行后面的代码。这个功能可以用goto语句实现,但是这个技巧也是很有用的。一般在do{}内会有很多判断,不满足就直接使用break跳转到while(0)后面。