else语句无法正常工作

时间:2017-09-12 01:41:54

标签: javascript if-statement

var question=prompt("What is your age?");

if (question == 14) {
    alert("Coupon 1")
}
if (question == 21) {
    alert("Coupon 2")
}
if (question == 30) {
    alert("Coupon 3")
}
if (question == 50){
    alert ("Coupon 4")
}
else {
    alert("No Coupon")
}

如果我进入14岁,它将显示"优惠券1"之后它还会显示" No Coupon"。它为每个if语句执行此操作,除了最后一个,50岁。如果我进入50岁,我只能获得优惠券4而且没有#34;没有优惠券"。 我不明白为什么会这样做。

2 个答案:

答案 0 :(得分:1)

您的if语句未连接,每个语句都独立于其他语句,这意味着正在检查所有案例,即使较早的语句返回true。你的代码更像是这样:

var question = prompt("What is your age?");
    //check if 14
    if (question == 14) {
        alert("Coupon 1")
    }
    //check if 21
    if (question == 21) {
        alert("Coupon 2")
    }
    //check if 30
    if (question == 30) {
        alert("Coupon 3")
    }
    //check if 50, else no coupon
    if (question == 50){
        alert ("Coupon 4")
    }
    else {
        alert("No Coupon")
    }

尝试将其更改为使用if elseif语句字符串,这意味着逻辑是一个连续的流程:

var question = prompt("What is your age?");
        //check if 14
        if (question == 14) {
            alert("Coupon 1")
        }
        //check if 21
        else if (question == 21) {
            alert("Coupon 2")
        }
        //check if 30
        else if (question == 30) {
            alert("Coupon 3")
        }
        //check if 50
        else if (question == 50){
            alert ("Coupon 4")
        }
        //if none of the above, no coupon
        else {
            alert("No Coupon");
        }

Javascript - 以及许多其他语言 - 具有内置语法,专门处理这种if-elseif-else链,称为Switch Statement。您可以使用以下开关重写代码:

switch (prompt("What is your age?")) {
    case 14:
        alert("Coupon 1");
        break;
    case 21:
        alert("Coupon 2");
        break;
    case 30:
        alert("Coupon 3");
        break;
    case 50:
        alert("Coupon 4");
        break;
    default:
        alert("No Coupon");
        break;
}

答案 1 :(得分:0)

只连接了最后一个if和else语句,前三个是三个独立的if语句,所以前三个案例的每一个都是真的,其中一个条件也是真的。

var question=prompt("What is your age?");

if (question == 14) {
    alert("Coupon 1")
}
else if (question == 21) {
    alert("Coupon 2")
}
else if (question == 30) {
    alert("Coupon 3")
}
else if (question == 50){
    alert ("Coupon 4")
}
else {
    alert("No Coupon")
}

阅读if-else if-else语句here