Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 Do While循环与函数循环混合_Javascript - Fatal编程技术网

Javascript Do While循环与函数循环混合

Javascript Do While循环与函数循环混合,javascript,Javascript,我正在为学校写一个简单的程序,遇到了一个问题,我希望有人能帮助我 以下是分配参数: 创建一个小型JavaScript程序,该程序: 创建值为0的变量“total”。 使用do while循环和函数提示用户输入一系列数字,或使用单词quit-quit命令不区分大小写。 如果用户输入一个数字,则将新数字添加到运行总数中。 如果用户输入单词quit,循环应该停止执行。 如果用户输入的不是quit,则提示消息应更改,以让用户知道他们输入了无效的数据类型 退出循环时,显示一条消息,给出输入的总数 我的代码

我正在为学校写一个简单的程序,遇到了一个问题,我希望有人能帮助我

以下是分配参数:

创建一个小型JavaScript程序,该程序:

创建值为0的变量“total”。 使用do while循环和函数提示用户输入一系列数字,或使用单词quit-quit命令不区分大小写。 如果用户输入一个数字,则将新数字添加到运行总数中。 如果用户输入单词quit,循环应该停止执行。 如果用户输入的不是quit,则提示消息应更改,以让用户知道他们输入了无效的数据类型 退出循环时,显示一条消息,给出输入的总数 我的代码实现了所有赋值参数,但我不知道如何在输入quit命令后让提示消失。结果仍然显示在屏幕上,但提示仍在循环。 这是我的密码:

var inputCounter = 0;
var total = 0;
newInput = null;
quit = /quit/i

function askForNum(a) {
    do {
        var newInput = prompt(a);
        if (!newInput.match(quit)) {
            if (newInput < "A" && newInput > "" ) {
                var addThis = parseFloat(newInput);
            }
            if (isNaN(newInput)) {
                askForNum("That wasn't a number! type \"quit\" to see the results!");
            } else {
                total += addThis;
                inputCounter++;
                askForNum("Every number you enter gets added together! type \"quit\" to see the results!");
            }
        }
    } while (!newInput.match(quit)) {

        document.getElementById("addition-script").innerHTML = "<b>TOTAL:</b> " + total + "<br><b># OF ENTRIES:</b> " + inputCounter;
        return;
    }
}

if (total == 0){
    askForNum("initial: Every number you enter gets added together! type \"quit\" to see the results!");
}

您正在从内部递归调用askForNum函数,实际上,每次键入除quit以外的任何内容时,都会在上一个循环中启动一个新的do-while循环。

您使用的是两个单独的newinput。while条件检查全局条件,该条件仍然为null。尝试在函数外部声明所有变量,然后不要在函数内部重新声明它们,也就是说,不要再次使用var。您使用的递归是一个调用自身的函数。在您的示例代码中,您需要键入quit,键入次数与键入数字的次数相同。谢谢!这将帮助我重新评估我的方法