为什么此警报显示9但不显示5或其他数字?
for (var i = 0; i < 9; i+=2)
{
if (++i == 5) break;
else continue;
}
alert( i++ );
答案 0 :(得分:1)
这应该像你期望的那样有效。
for (var i = 0; i < 9; i+=2)
{
if (i++ == 5) {
alert(i++);
};
else continue;
}
当i
值为4时,它会发出警报。
答案 1 :(得分:1)
因为['/Users/zabgay/Documents/GitHub/untitled', '/Library/Frameworks/SQLite3.framework/Versions/B/Python/2.7', '/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7', '/Library/Python/2.7/site-packages/numpy-override', '/Library/Frameworks/GDAL.framework/Versions/1.11/Python/2.7/site-packages', '/Library/Python/2.7/site-packages/pandas-0.15.1-py2.7-macosx-10.10-intel.egg', '/Library/Python/2.7/site-packages/Sys-1.0-py2.7.egg', '/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg', '/Library/Frameworks/cairo.framework/Versions/1/Python/2.7', '/Users/zabgay/Documents/GitHub/untitled', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']
正文中的if statement
不会被评估为for loop
。
如下所示,您的代码将被执行。
迭代1
true
迭代2
if(1 == 5) //false
迭代3
if(4 == 5) //false
在第三次迭代之后,if(7 == 5) //false
将为i
,因此for循环的条件将在此时失败并且循环结束。然后在循环外,警报会将9
的值打印为9。
答案 2 :(得分:1)
这是因为在你的循环中,当if (++i == 5) break
检查发生时,我永远不会是5。
在第一次迭代中,i为0.但是然后你的++i
使我变为1,所以在第二次迭代中,我在循环开始时为3。然后++1
使我转到4,所以在下一次迭代中,它跳过5(因此它永远不会中断)并变为6。
它会警告9,因为当你的循环结束时,这就是我留下的东西。
答案 3 :(得分:0)
每个循环都会多次递增索引。
首先传递变量为1,因为您在if
块中递增0。
下一次传递变量是3,因为你的增量器在for
块中。
然后在if
块中将其增加到4。
然后从for
增量开始6。
然后从if
增量中获得7。
然后从for
增量9开始,for
不再有效并且中断。