我应该使用ELSE IF和ELSE还是尽可能避免使用它们?

时间:2011-03-08 12:46:12

标签: if-statement conditional

我经常使用条件分支编写函数,如下所示:

function f
  if(X) {
    do something minor;
  }
  else if(Y) {
    do something minor;
  }
  else {
    do a whole lot of stuff;
  }

我可以做到同样的结果:

function f
  if(X) {
    do something minor;
    return;
  } 

  if(Y) {
    do something minor;
    return;
  }

  do a whole lot of stuff

我喜欢第二个不要求我缩进我的大部分代码,但我不确定这是否被认为是好的做法。由于条件之后没有共同的代码,所以做出艰难的回报似乎是合理的。但第一种风格似乎也有优点。

3 个答案:

答案 0 :(得分:1)

我个人认为使用大量的return语句可能会降低代码的可读性

我经常布置我的代码,以便在你的情况下,函数的'main'主体不必全部缩进:

function f
  if (X || Y) {
    if (X) do something minor;
    if (Y) do something minor;
    return; // with comment explaining what we're doing
  } 

  do a whole lot of stuff

答案 1 :(得分:1)

首先;到现在为止,你应该使用一个编辑器来处理你的缩进。

二;有几个返回语句可能会令人困惑。一个功能一个退出点。

第三;如果“很多东西”可以作为单独的函数编写,那就去做吧。

但话说回来,这都是品味问题。

答案 2 :(得分:0)

尝试使用开关/案例:

function f
{
  switch(Z)
  {
       case X:
          do something...
          break;
       case Y:
          do something...
          break;
       default:
          f2();
  }

}

function f2{do other stuff...

}