循环使用if和break语句

时间:2016-04-14 17:12:03

标签: javascript loops if-statement break

为什么此警报显示9但不显示5或其他数字?

for (var i = 0; i < 9; i+=2) 
{
   if (++i == 5) break;
   else continue;
}
alert( i++ );

4 个答案:

答案 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不再有效并且中断。