while循环不会在js中停止

时间:2018-09-19 10:05:41

标签: javascript while-loop

我想在使用while时使用功能,仅从我选择的数字开始打印10个数字。

但是while循环不会停止循环。

id = prompt('Write any number.');
function numbering(a) {
    var i = a; 
    var j = a + 10;  
    while (i < j) {
       document.write(i);
       i++;
    }
};
numbering(id);

8 个答案:

答案 0 :(得分:4)

尝试一下:

var id = parseInt(prompt('Write any number.'), 10);

在您的示例中,id将为字符串类型,并且比较将无法按预期进行。

答案 1 :(得分:2)

使用function numbering(a) {时,变量a作为字符串传递。

这导致ij被设置为字符串。

例如: 假设您传递2作为输入,您的变量将被设置为a="2"i="2"j="210"。因此,根据您的情况,它将从2209开始打印。

您可以更改代码以将a解析为数字以实现结果;像这样:

function numbering(a) {
    a = parseInt(a);  //parse as Int here
    var i=a; var j=a+10;
    while (i < j) 
      {
         document.write(i);
         i++;
      }
};

答案 2 :(得分:1)

尝试使用for循环:

for(var i=0; i<10; i++){ doSomething}

答案 3 :(得分:1)

您可以尝试使用此for循环功能:

 id=prompt('Write any number.');
 function numbering(a) {
  for (let i = a; i < a + 10; i++){
    document.write(i);
  }
 };

numbering(id);

如果要将输入解析为数字,则可以在编号函数参数调用中添加parseInt(id)

答案 4 :(得分:0)

在提示中输入数字时,该数字将作为字符串提供。由于您尚未将其转换为数字,因此var j = a + 10行实际上将两个值连接在一起,就好像它们是字符串一样。

例如,如果在提示中输入“ 5”,则var j = "5" + 10返回"510"。只有在将while循环中的两个变量与i < j比较时,它才会被解释为数字,并从5循环到510。

将字符串转换为数字的最简单方法是使用parseInt(value)

答案 5 :(得分:0)

提示函数返回一个string。 问题是您正在将string与数字10连接起来。

如果您将变量写入文档,则可以看到问题:

     id=prompt('Write any number.');
    function numbering(a) {
        var i=a; var j=a+10; 
        document.write(i);
        document.write("<br/>");
        document.write(j);
        document.write("<br/>");
        //while (i < j){
        //  document.write(i);
        //  i++;
        //}
    };

         numbering(id);

这将解决您的问题:

var id=parseInt(prompt('Write any number.'));

答案 6 :(得分:0)

您需要parseInt函数,因为从promt获得的是字符串。例如5 +10。对于javascript,它将是510。

     id=prompt('Write any number.');
function numbering(a) {
  var i=parseInt(a); var j=parseInt(a)+10; 
  while (i < j){
    document.write(i);i++;
  }};

             numbering(id);

答案 7 :(得分:0)

document.write(i +"<br>");

在控制台中,我得到了正确的结果。只需添加换行符即可在视口中查看整个结果

相关问题