为什么这个switch语句不起作用?

时间:2016-07-26 16:13:53

标签: javascript switch-statement

我创建了一个switch语句但是一切似乎都陷入了默认状态。如果我以if / else格式重写它,它可以正常工作。谁能解释为什么会这样?谢谢!

不起作用:

 switch(delta){
    case (delta<10):
      xsmall++;
      break;
    case (delta>= 10 && delta< 50):
      small++;
      break;
    case (delta>= 50 && delta<250):
      med++;
      break;
    case (delta>= 250 && delta<1000):
      large++;
      break;
    case (delta>= 1000):
      xlarge++;
      break;
    default:
      unknown++;
  }

成功运作:

if(delta<10)
    xsmall++;
else if(delta>= 10 && delta < 50)
    small++;
else if(delta >= 50 && delta < 250)
    med++;
else if(delta >= 250 && delta <1000)
    large++;
else if(delta >= 1000)
    xlarge++;
else
   unknown++;

1 个答案:

答案 0 :(得分:1)

这将有效:

$def->setMethodCalls(array(array($factoryReference,'getIndex')));

原因:您需要将boolean传递给switch语句,因为所有情况都将返回布尔值而不是数字