Javascript 如果答案不正确,如何返回到提示
对于JavaScript来说相当陌生,如果用户输入了错误的答案,并且我希望问题重复,直到他们得到正确的答案,我如何循环回到提示问题Javascript 如果答案不正确,如何返回到提示,javascript,Javascript,对于JavaScript来说相当陌生,如果用户输入了错误的答案,并且我希望问题重复,直到他们得到正确的答案,我如何循环回到提示问题 Javascript程序 var company=(提示(“开发javascript语言的公司的名称是什么?”,“”); 如果(公司=='netscape'){ 警惕(“回答正确!”); }否则{ 警惕(“回答错误”); } 您可以将代码包装在函数中,并在不正确的值上调用self var max_count=5; 函数showConfirm(){ var co
Javascript程序
var company=(提示(“开发javascript语言的公司的名称是什么?”,“”);
如果(公司=='netscape'){
警惕(“回答正确!”);
}否则{
警惕(“回答错误”);
}
您可以将代码包装在函数中,并在不正确的值上调用self
var max_count=5;
函数showConfirm(){
var company=(提示(“开发javascript语言的公司的名称是什么?”,“”);
如果(公司=='netscape'){
警惕(“回答正确!”);
}否则{
警惕(“回答错误”);
//限制用户进行有限计数
如果(--最大计数>0)
showConfirm()
}
}
showConfirm()代码>您可以使用如下循环:
let question = "What is the name of the company that developed the javascript language?",
defaultAnswer = "stackoverflow",
correctAnswer = "netscape";
while(prompt(question, defaultAnswer) !== correctAnswer) alert("Wrong answer")
alert("Correct answer");
或者你可以使用递归,参考Rajesh的答案。你可以使用循环,直到你的条件为true
,然后使用语句退出循环
基本上,您可以选择先检查条件的循环
while (condition) {
// code
}
稍后检查条件的循环
do {
// code
} while (condition);
中间的解决方案
while (true) {
// code
if (condition) break;
// code
}
或者是递归解决方案,比如
function fn() {
// code
if (condition) {
// code
return
}
fn(); // call fn again
}
但我建议使用迭代方法,直到值满足条件
var公司;
while(true){
company=prompt(“开发javascript语言的公司的名称是什么?”,“”);
如果(公司=='netscape'){
打破
}
警惕(“回答错误”);
}
警惕(“回答正确!”)代码>您需要包含函数本身,直到它满足要求并返回(退出函数)
连续显示提示可能会让人恼火,用户始终可以在浏览器中选择阻止页面创建更多对话。如果您使用带有while(true)
的循环,并且用户出于不安选择阻止对话,则页面可能会处于挂起状态。我建议在假设答案错误之前,使用计数器询问特定时间的问题,如下面代码所示
function askQuestion() {
return prompt("What the name of the company that developed the javascript language?", "");
}
var counter = 0;
var correctAnswer = false;
while(!correctAnswer && counter < 10) {
counter++;
correctAnswer = askQuestion() === 'netscape';
if (!correctAnswer) {
alert("wrong");
}
}
if (correctAnswer) {
alert("correct");
} else {
alert("sorry after 10 attempts answer is still wrong");
}
函数askQuestion(){
返回提示(“开发javascript语言的公司的名称是什么?”,“”);
}
var计数器=0;
var correctAnswer=假;
而(!correctAnswer&计数器<10){
计数器++;
correctAnswer=askQuestion()==='netscape';
如果(!正确答案){
警惕(“错误”);
}
}
如果(正确答案){
警惕(“正确”);
}否则{
警告(“尝试10次后抱歉,回答仍然错误”);
}
您也可以检查此plnkr链接查看循环。顺便说一句,如果有人键入Netscape
而不是Netscape
,会发生什么情况。要添加答案,您还可以使用do-while循环,您不需要else
,并且ask()
应该在定义之后。是的,如果没有else块,它会更整洁
function askQuestion() {
return prompt("What the name of the company that developed the javascript language?", "");
}
var counter = 0;
var correctAnswer = false;
while(!correctAnswer && counter < 10) {
counter++;
correctAnswer = askQuestion() === 'netscape';
if (!correctAnswer) {
alert("wrong");
}
}
if (correctAnswer) {
alert("correct");
} else {
alert("sorry after 10 attempts answer is still wrong");
}