具有多个值的switch语句

问题描述 投票:0回答:3

我想知道是否有一种方法可以评估switch表达式中的多个值。例如,我只想在X和Y匹配的情况下应用案例。这是我的代码:

switch (x,y) {
  case x >= 0 && x < 150 && y == 150:
    topLeftRight();
  break;
  case x == 150 && y <= 150 && y > 0:
    topRightDown();
  break;
  case y === 0 && x > 0 && x <= 150:
    bottomRightLeft();
  break;
  case x === 0 && y <= 150 && y >= 0:
    bottomLeftUp();
  break;
}

您知道是否可以通过switch进行?在此先感谢:)

javascript switch-statement
3个回答
1
投票

您可以使用true作为表达式来检查情况。 switch statement使用表达式部分和大小写部分的严格比较switch

===

1
投票

您需要一个if语句

switch (true) {
  case x >= 0 && x < 150 && y == 150:
    topLeftRight();
    break;
  case x == 150 && y <= 150 && y > 0:
    topRightDown();
    break;
  case y === 0 && x > 0 && x <= 150:
    bottomRightLeft();
    break;
  case x === 0 && y <= 150 && y >= 0:
    bottomLeftUp();
    break;
}

case语句非常适合检查单个变量是否等于多个事物的列表。例如:

if(x >= 0 && x < 150 && y == 150)
  topLeftRight();
else if(x == 150 && y <= 150 && y > 0)
  topRightDown();
else if(y === 0 && x > 0 && x <= 150)
  bottomRightLeft();
else if(x === 0 && y <= 150 && y >= 0)
  bottomLeftUp();

[评估条件时,最好使用switch(vehicle.type){ case Boat: print("This is a boat") break; case Car: print("This is a car") break; case default: print("This is not a boat or a car") break; } 语句


-2
投票

您可以执行以下操作:

if/else if/else

但是您不能在一个开关中使用两个变量,而必须使用if语句

© www.soinside.com 2019 - 2024. All rights reserved.