Javascript条件切换语句

AP2*_*257 40 javascript

有没有办法在javascript中编写条件切换语句?

我猜不是,因为以下内容总是默认:

    var raw_value = 11.0;
    switch(raw_value)
    {
        case (raw_value > 10.0):
          height = 48;
          width = 36;
          break;
        case (raw_value > 5.0):
          height = 40;
          width = 30;
          break;
        default:
          height = 16;
          width = 12;
          break;
    }
Run Code Online (Sandbox Code Playgroud)

如果没有,我应该使用什么 - 一个长if/else语句?

谢谢 :)

Dan*_*Man 127

像这样:

var raw_value = 11.0;
switch(true) {
    case (raw_value > 10.0):
      height = 48;
      width = 36;
      break;
    case (raw_value > 5.0):
      height = 40;
      width = 30;
      break;
    default:
      height = 16;
      width = 12;
}
Run Code Online (Sandbox Code Playgroud)

case语句中的表达式将评估为true或者false,如果符合switch条件......瞧.这些default行为就像一个else.

优点:您可以通过简单地更换反转整个逻辑truefalse.使用if ... else if语句,您必须单独编辑每个if子句.

  • 这应该是正确的答案,因为它确实是OP所要求的风格.但是,我第一次看到switch(true)语句时遇到了困难. (5认同)
  • 只是旁注.这是一个明显的例子,不能假设具有最多SO点的人有正确的答案. (3认同)
  • 很高兴至少帮助了一个人。:) (2认同)

Gum*_*mbo 30

switch语句中,switch表达式的评估值与案例的评估值进行比较.所以这里将raw_value(数字)的值与raw_value > 10.0(比较表达式)和raw_value > 5.0(比较表达式)进行比较.

因此,除非您的一个case表达式产生的数字等于11.0或者您使用该switch表达式true,否则您将始终获得默认情况.

只需使用简单if/ else代替:

var raw_value = 11.0;
if (raw_value > 10.0) {
    height = 48;
    width = 36;
} else if (raw_value > 5.0) {
    height = 40;
    width = 30;
} else {
    height = 16;
    width = 12;
}
Run Code Online (Sandbox Code Playgroud)