Javascript 我的switch语句有问题。保持默认值

Javascript 我的switch语句有问题。保持默认值,javascript,switch-statement,conditional-statements,Javascript,Switch Statement,Conditional Statements,试图在OOP方面做得更好。我似乎无法使这个switch语句起作用。控制台会记录正确的值(级别),但switch语句中的大小写无法识别。我一直收到默认消息 function Haircut(adult, price, gratuity, gratuityAmount) { this.adult = adult; this.price = price; this.gratuity = gratuity; this.gratuityAmount = gratuityAm

试图在OOP方面做得更好。我似乎无法使这个switch语句起作用。控制台会记录正确的值(级别),但switch语句中的大小写无法识别。我一直收到默认消息

function Haircut(adult, price, gratuity, gratuityAmount) {
    this.adult = adult;
    this.price = price;
    this.gratuity = gratuity;
    this.gratuityAmount = gratuityAmount;
}

Haircut.prototype.status = function () {
    const level = parseInt(this.gratuityAmount);
    console.log(level);
    switch (level) {
        case level >= 20:
            console.log("You are a Platinum Level Client!");
            break;
        case level >= 15:
            console.log("You are a Gold Level Client!");
            break;
        case level >= 10:
            console.log("You are a Silver Level Client!");
            break;
        case level >= 5:
            console.log("You are a Bronze Level Client!");
            break;
        default:
            console.log("You don't tip! That sucks!");
    }
};

基本上,在switch语句中直接使用大于和小于是不可能的。 但在中,您可以直接实现上述代码,如下所示:

switch (true) {
    case level >= 20:
        console.log("You are a Platinum Level Client!");
        break;
    case level >= 15:
        console.log("You are a Gold Level Client!");
        break;
    case level >= 10:
        console.log("You are a Silver Level Client!");
        break;
    case level >= 5:
        console.log("You are a Bronze Level Client!");
        break;
    default:
        console.log("You don't tip! That sucks!");
}
意思是,请尝试通过
switch(true)
更改
switch(level)
,然后重试。
无论如何,我建议使用
if,else-if,else
语句,而不是在这种情况下切换。

谢谢。我最终还是用了if/else语句