我正在制作一个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循环来继续重复代码,直到达到目标为是或否?
答案 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();
}
//做东西