今天遇到了一段代码,类似下面
do {
...
} while(false)
开始很疑惑,为什么这样写,后来上网搜了一下才恍然大悟。这种语法是为了解决代码嵌套、实现goto的用途
下面是同样功能的三段代码
1、代码嵌套 <!--more-->
if( A==true ) {
if(B == true) {
if(C == true) {
if(D == true){
//doSomething
}
}
}
}
这样箭头形代码很丑,且可读性差
2、goto代码
if( A==false )
goto tag;
if( B==false )
goto tag;
if( C==false )
goto tag;
if( D==false )
goto tag;
//doSomething
tag:
3、do{}while(false)
这样的结构能够创造可读性良好的代码,又可以避免goto可能产生的问题
do
{
if( A==false )
break;
if( B==false )
break;
if( C==false )
break;
if( D==false )
break;
//doSomething
}while(false);
留言