做循环与功能循环混合

时间:2018-01-31 22:04:15

标签: javascript

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

这些是作业参数:

  

创建一个小型JavaScript程序:

     
      
  • 创建一个变量' total'值为0.
  •   
  • 使用do-while循环&用于提示用户输入一系列数字的功能,或者单词" 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!");
}

1 个答案:

答案 0 :(得分:1)

您正在从内部调用askForNum函数(递归),实际上每次键入除&#34; quit&#34;之外的任何内容时,在前一个内部启动一个新的do-while循环。