如何运行程序,直到用户给出某个答案(字符串+#)

时间:2014-08-06 17:29:50

标签: javascript

我正在制作一个JavaScript程序(用于娱乐用途),向用户询问多个问题。其中一个问题是"你喜欢红色(是/否)?" 它会弹出提示框,但我希望用户只回答是或否。如果用户回答“是”或“否”之外的其他内容,我希望弹出提示框并说出"答案无效。请输入yes或no。" 我希望该消息不断弹出,直到用户回答是或否。如果用户输入是,我想要弹出警告框并说出"我最喜欢的颜色也是红色!" 如果用户输入没有显示警告框&# 34;没关系" 即可。对不起,这是一个很长的问题,但我已经尝试了所有我知道的没有铁砧。非常感谢帮助。

代码:(接近我想要它做的事)

var qtwo = prompt(" Do you like the color red (Yes/No) " + name);

switch(qtwo){

        case "yes":
            alert("I like the color red too!");
            break;

        case "no":
            alert("Okay.");
            break;

        default: 
            prompt("Invalid answer! Please type only yes or no.");

                if(qtwo=="yes"){
                    alert("I like the color red too!.");
                }
                if(qtwo=="no"){
                    alert("Okay");
                }
    }

我是否应该在那里使用某种while / for循环来继续重复代码,直到达到目标为是或否?

3 个答案:

答案 0 :(得分:1)

应将var qtwo移至单独的行,并将所有剩余代码(包括qtwo = prompt(...))包装在while (qtwo != 'yes' && qtwo != 'no')的块中。

答案 1 :(得分:1)

这是一个非常基本的解决方案。 Haven从你的代码中改变了很多。

var qtwo = "";

while (qtwo != "yes" && qtwo != "no") {
    qtwo = prompt(" Do you like the color red (Yes/No) " + name);

    switch(qtwo) {

        case "yes":
            alert("I like the color red too!");
            break;

        case "no":
            alert("Okay.");
            break;

        default: 
            alert("Invalid answer! Please type only yes or no.");
    }
}

这里最重要的是外部while循环。此外,您的default案例不应该是原来的if/else

答案 2 :(得分:1)

您需要在while循环中包装代码的提示部分。

将存储的响应转换为小写以处理相同答案的多个版本也是一个好主意,例如'是'或者'是',以确保循环正确终止。

您可能希望在while / switch语句中处理的其他常见情况可能是' y'是的,' n'或默认情况下没有回答'情况下。

以下是您可以构建的一些代码:

var qtwo = "";

while (qtwo !== 'yes' && qtwo !== 'no') {
    qtwo = prompt(" Do you like the color red (Yes/No) " + name);
    qtwo = qtwo.toLowerCase();
}

//做东西