JavaScript-变量在for循环问题中递增
我试图创建一个for循环,通过数字1-4递增并打印它们,但是当我在循环后打印I的值时,我的代码输出5 (i=1;i<5;i++)的JavaScript-变量在for循环问题中递增,javascript,for-loop,Javascript,For Loop,我试图创建一个for循环,通过数字1-4递增并打印它们,但是当我在循环后打印I的值时,我的代码输出5 (i=1;i
{
document.write(i+“
”);//输出数字1-4
}
文件。写入(“新i:+i”)//输出5
您可以将最终表达式部分移动到的条件部分,其中仅当值小于4
时才会发生增量
vari;
对于(i=0;i<4&&++i;){
console.log(i);//1…4
}
console.log('last value',i);//4
在每个循环开始时评估i<5的测试子句;如果为false,则循环退出(将值保留为5)。i++部分总是在迭代结束时出现,这意味着在循环中处理完数字4后,它将其递增到5,然后循环到循环的顶部,再次检查条件(i- 要处理的循环块的条件是
,因此i<5
必须小于5才能计算其中的语句和表达式i
- 每次通过时,将
增加1i
- 当
等于4时,再次将其递增1,使i
等于5。i
不再为真,因此不会执行循环内块i<5
- 没有任何东西将
返回一个增量;因此它将在循环后保留该增量i
var log=console.log;
//示例1:在之后减少循环迭代器
对于(变量i=1;i<5;i++)
日志(i);
log('newi:',--i);//4
//示例2:按条件计数
var计数=0;
对于(变量i=1;i<5&&++count;i++)
日志(i);
log('newi:',count);//4
//示例3:循环体中的计数
var计数=0;
对于(变量i=1;i<5&&++count;i++)
日志(i);
log('New i:',count);/4
请使用count变量,因为每次执行语句后,i值都会增加。也就是说,循环执行完毕后,i值将始终为5
var计数=0;
对于(i=1;i而言,当您在循环语句中声明变量时,它将变量存储在与循环相同的范围内。循环在循环结束时递增(i++),然后检查条件(i<5)以查看它们是否应该重复。循环结束后,变量i仍然存在。请参阅下面的代码段以了解逐次播放
另外,在声明i时应该使用var关键字,否则,变量将存储在全局范围中(这是一种糟糕的做法)
//这里捕获变量i(使用var关键字)
对于(变量i=1;i<5;i++){
//对于第四次迭代,i==4
//所以它打印4。
文件.编写(i);
//我现在是5岁。
//然后循环检查该条件,以查看它是否正确
//应该继续。i不小于5,因此循环中断。
}
//i的值仍然是5,所以这个打印5。
文档。写入(“”+i);
您已将i声明为全局变量
这就是for循环的工作原理
用于(初始化、条件、增量/减量){
}
var数组=[1,2,3,4];
array.forEach(函数(值){
文件。写入(值+“
”);
});
document.write(“处理的值:”+array.length)
这就是循环停止的原因,因为基本上i
有5
值,并且由于您将i
变量设置为全局变量,您可以在for
循环外部访问它,它保持5
值。i++
发生在每次迭代结束时,因此当i
等于4时,您就可以编写它到文档,然后将i
增加到5-这就是导致i<5
为false并停止循环的原因,i
现在是5
。为什么不将变量设置为5?