我想在使用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);
答案 0 :(得分:4)
尝试一下:
var id = parseInt(prompt('Write any number.'), 10);
在您的示例中,id将为字符串类型,并且比较将无法按预期进行。
答案 1 :(得分:2)
使用function numbering(a) {
时,变量a
作为字符串传递。
这导致i
和j
被设置为字符串。
例如:
假设您传递2
作为输入,您的变量将被设置为a="2"
,i="2"
和j="210"
。因此,根据您的情况,它将从2
到209
开始打印。
您可以更改代码以将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>");
在控制台中,我得到了正确的结果。只需添加换行符即可在视口中查看整个结果