17

Node.JS程序中存在大量分支流程时,使用哪一个好。

转变

switch(n)
{
case 1:
  execute code block 1
  break;
case 2:
  execute code block 2
  break;
default:
  code to be executed if n is different from case 1 and 2
}


if-else

if (condition1)
  {
    execute code block 1
  }
else if(condition2)
  {
    execute code block 2
  } 
else
  {
     code to be executed if n is different from condition1 and condition2
  } 
4

2 回答 2

20

对于少数几项,差异很小。如果您有很多物品,您绝对应该使用开关。它比 if-else 提供更好的性能。

如果一个开关包含五个以上的项目,则使用查找表或哈希列表来实现。这意味着所有项目都获得相同的访问时间,与 if-else 列表相比,最后一个项目需要更多时间才能到达,因为它必须首先评估每个先前的条件。

于 2013-04-05T11:01:40.280 回答
7
switch(n)
{
case 1,3,4:
     execute code block 1
     break;
case 2,5,9,10:
     execute code block 2
     break;
default:
      code to be executed if n is different from first 2 cases.
}

要为上述情况写下 if...else if...else 步骤,您必须编写“OR (||)”条件语句并在语句中重复变量“n”,其中为 switch案例可以仅用逗号“,”分隔。因此 switch 对于这种情况更具可读性。

于 2014-03-07T13:39:48.353 回答