【问题标题】:How can i write these if statements as a single nested switch我如何将这些 if 语句编写为单个嵌套开关
【发布时间】:2021-09-19 22:18:00
【问题描述】:

我正在尝试将这个 if 语句写在这里作为 switch 语句

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

【问题讨论】:

  • 这里不能使用switch,因为switch不能进行逻辑运算(比如大于&lt;)。但是,您可以改用else if

标签: javascript if-statement switch-statement


【解决方案1】:

嗯,没有硬性规定是使用 switch 还是 if-else,但我更喜欢在打开单个变量的值时使用 switch,该变量至少有两个具有常量值的选项来区分之间。无论如何,您可以通过简单地放置一个 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;
}

【讨论】:

    【解决方案2】:

    你可以写一个switch语句如下:

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

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

    2250 < 2500 && 2250 > 2000
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 2021-09-27
      • 2023-02-13
      • 2019-07-18
      • 1970-01-01
      相关资源
      最近更新 更多