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

If statement 我应该使用ELSE IF and ELSE还是尽可能避免它们?,if-statement,conditional,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) { d

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

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

我喜欢第二种方法,它不需要我缩进大部分代码,但我不确定这是否是一种好的做法。由于没有遵循条件的通用代码,因此执行硬返回似乎是合理的。但是第一种风格似乎也有优点。

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

我经常对代码进行布局,以便函数的“主体”不必全部缩进,在您的例子中:

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

第一,;现在,您应该使用一个编辑器来处理缩进

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

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

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

试着使用switch/case:

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


}

您可能还会问,将这三种情况都放在一个函数中是否有意义。有时会,有时不会。当前两个箱子很容易安装在80x25终端上时,我更喜欢第二种形式。当前两个箱子很难安装在80x25终端上时,我更喜欢第一种形式。您也可以尝试相关的:为什么不想缩进代码?
function f2{do other stuff...