我如何将这些 if 语句编写为单个嵌套开关

How can i write these if statements as a single nested switch

我正在尝试将此 if 语句写为 switch 语句

if (value < 2500) {
  paystackFees = value * 0.015;
};
if (paystackFees > 2000) {
  paystackFees = 2000
};

可以这样写switch语句:

switch(true){
  case value < 2500: 
    paystackFees = value * 0.015;
    break;
  case paystackFees > 2000: 
    paystackFees = 2000 
    break;
  default:
    break;
}

但似乎有点问题,因为一个值可以同时满足这两个要求,例如:

2250 < 2500 && 2250 > 2000

所以你的 switch cases 的顺序将决定 paystackFees 的结束值。您也可以省略 break 语句,在这种情况下,您的结果将完全取决于最后一个案例。

好吧,没有硬性规定是使用 switch 还是 if-else,但我更愿意在切换单个变量的值时使用 switch,该变量至少有两个具有常量值的选项来区分。无论如何,您可以通过简单地放置一个开关(true)并按原样放置您的条件来使用开关。

if (value < 2500) {
  paystackFees = value * 0.015;
if (paystackFees > 2000) {
  paystackFees = 2000
};
};

有开关:

   switch(true) {
      case value < 2500:
        paystackFees = value * 0.015;
        break;
      case value < 1500:
        // If you wish to extend it further
        paystackFees = value * 0.015;
        break;
      default:
        // Have a default value here
        break;
    }

switch(true){
  case payStackFees > 2000:
    payStackFees = 2000;
    break
  case payStackFees > 3500 && payStackFees < 4000
    payStackFees = 3800;
    break;
  default:
    break;
}