将'否则'如果有返回完成函数,应该在C ++中使用

时间:2014-05-28 08:28:37

标签: c++

对于在C ++中编写代码的良好实践感到好奇,请以下代码为例:

int do_something()
{ 
   bool bHas;
   ....
   ....
   if (bHas)
   {
     ...
     return 1; 
   }

   ... do something else
   ...
   return 2;


}

在上面的代码中,我们可以看到bool bHas是否设置为true,那么函数将在中间完成;否则它将继续执行其余代码。也可以通过以下方式编写上述代码:

   int do_something()
    { 
       bool bHas;
       ....
       ....
       if (bHas)
       {
         ...
         return 1; 
       }
       else
       {

       ... do something else
       ...
       return 2;
       }


    }

正如您所看到的,这次' else'用于根据bool bHas的值准确说明将要执行的操作。我的问题是:哪种做法更好?谢谢。

1 个答案:

答案 0 :(得分:-2)

乍一看,第二次看起来更好,因为它在退货声明中是一致的。对我来说,在方法中使用单点返回更为可取。它使识别语句,调试和扩展代码更容易,更不容易出错。我会写类似

的东西
int do_something()
{ 
   bool bHas;
   ....
   ....
   int retValue;
   if (bHas)
   {
     ...
     retValue = 1; 
   }
   else
   {

   ... do something else
   ...
   retValue = 2;
   }

 .....
 return retValue;
}