希望用户为for循环输入数字来运行Javascript

时间:2015-09-24 05:02:29

标签: javascript

尝试让用户输入一个数字,如果他们输入一个字符串,我想提示他们输入一个数字。好像我得到了那个部分,但我怎么能得到第二个提示,以便在用户输入实际数字之前一直弹出。截至目前,一旦用户再次输入字符串,之后就无法运行。非常感谢任何建议。

以下是代码:

function enterNumber(n) {

    n = parseInt(prompt("Please enter a number: "));

    if (isNaN(n)) {
        n = parseInt(prompt("You did not enter a number. Please enter a number: "));

            for(var i = 1; i <= n; i++) {

            if (i % 15 === 0) {
                document.write("Fizz Buzz" + "<br>");
                continue;
            }
            else if (i % 3 === 0){
                document.write("Fizz" + "<br>");
                continue;
            } else if (i % 5 === 0) {
                document.write("Buzz" + "<br>");
                continue;
            }
            document.write(i + "<br>");
        }
    }

};
enterNumber();

2 个答案:

答案 0 :(得分:2)

使用while循环,直到输入的是数字。

function enterNumber(n) {
  while (isNaN(parseInt(n))) {
    n = parseInt(prompt("Please enter a number: "));
  }

  for (var i = 1; i <= n; i++) {

    if (i % 15 === 0) {
      document.write("Fizz Buzz" + "<br>");
      continue;
    } else if (i % 3 === 0) {
      document.write("Fizz" + "<br>");
      continue;
    } else if (i % 5 === 0) {
      document.write("Buzz" + "<br>");
      continue;
    }
    document.write(i + "<br>");
  }

};

enterNumber();

您还可以使用嵌套的三元运算符缩短代码,如下所示。

function enterNumber(n) {
  while (isNaN(parseInt(n))) {
    n = parseInt(prompt("Please enter a number: "));
  }

  for (var i = 1; i <= n; i++) {
    var title = i % 15 === 0 ? 'Fizz Buzz' : i % 3 === 0 ? 'Fizz' : i % 5 === 0 ? 'Buzz' : i;
    document.write(title + "<br>");
  }
};

enterNumber();

答案 1 :(得分:1)

试试这个

function enterNumber(n) {


  while (isNaN(n))
    n = parseInt(prompt("You did not enter a number. Please enter a number: "));


  for (var i = 1; i <= n; i++) {

    if (i % 15 === 0) {
      document.write("Fizz Buzz" + "<br>");
      continue;
    } else if (i % 3 === 0) {
      document.write("Fizz" + "<br>");
      continue;
    } else if (i % 5 === 0) {
      document.write("Buzz" + "<br>");
      continue;
    }
    document.write(i + "<br>");
  }


};
enterNumber();