我如何将这些 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;
}
我正在尝试将此 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;
}