循环do while false的妙用

1,032 阅读1分钟
do{
    //业务逻辑    
}while(false);

在公司阅读项目代码中发现了一段奇怪的代码,引起了好奇心。经过查询资料,发现这样写有以下妙用,特此记录一下。

  1. 实现类似goto的功能、简化代码嵌套

    代码编写中,常常会遇见这种情况,第二个判断需要依赖第一个判断的结果,甚至第三个判断需要依赖第二个判断的结果。则条件判断就只能写作下面这种形式。这也是很多逻辑代码if...else嵌套很多层的原因之一。

    if(condition1){
        //代码段1
        if(condition2){
            //代码段2
            if(condition3){
                //代码段3
            }
        }
    }
    

    然而各种判断嵌套在一起,不容易理清代码逻辑,而且容易出错。如果使用do...while则可解决这种多重嵌套的问题

    do{
        if(!condition1)
            break;
        //代码段1
        if(!condition2)
            break;
        //代码段2
        if(!condition3)
            break;
        //代码段3
    }while(false)