Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果答案不正确,如何返回到提示_Javascript - Fatal编程技术网

Javascript 如果答案不正确,如何返回到提示

Javascript 如果答案不正确,如何返回到提示,javascript,Javascript,对于JavaScript来说相当陌生,如果用户输入了错误的答案,并且我希望问题重复,直到他们得到正确的答案,我如何循环回到提示问题 Javascript程序 var company=(提示(“开发javascript语言的公司的名称是什么?”,“”); 如果(公司=='netscape'){ 警惕(“回答正确!”); }否则{ 警惕(“回答错误”); } 您可以将代码包装在函数中,并在不正确的值上调用self var max_count=5; 函数showConfirm(){ var co

对于JavaScript来说相当陌生,如果用户输入了错误的答案,并且我希望问题重复,直到他们得到正确的答案,我如何循环回到提示问题


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");
}