网站地图    收藏   

主页 > 系统 > windows >

BAT的for循环为何停不住 - Windows操作系统 - 自学

来源:自学PHP网    时间:2015-04-17 17:13 作者: 阅读:

[导读] BAT的for循环为何停不住有个朋友在QQ群里面提的一个问题,代码如下:@echo onfor l %%i in (1,1,5) do ( echo %%i if %%i equ 4 ( goto :end )):endpause执行过程如下:d: Testt...

BAT的for循环为何停不住
 
有个朋友在QQ群里面提的一个问题,代码如下:
 
@echo on
for /l %%i in (1,1,5) do (
    echo %%i
    if %%i equ 4 (
        goto :end
    )
)
 
:end
pause
 
执行过程如下:
 
d:\Test>test.bat
 
d:\Test>for /L %i in (1 1 5) do (
echo %i
 if %i EQU 4 (goto :end )
)
 
d:\Test>(
echo 1
 if 1 EQU 4 (goto :end )
)
1
 
d:\Test>(
echo 2
 if 2 EQU 4 (goto :end )
)
2
 
d:\Test>(
echo 3
 if 3 EQU 4 (goto :end )
)
3
 
d:\Test>(
echo 4
 if 4 EQU 4 (goto :end )
)
4
 
d:\Test>(
echo 5
 if 5 EQU 4 (goto :end )
)
 
d:\Test>pause
Press any key to continue . . .
 
按理说,%%i 等于 4 的时候,就应该跳出 for 循环了,但为什么执行到 5 那里去了呢?原因是,for /l 不管循环体内部是否有跳出循环的语句,它都会遍历完整个循环条件。
 
我们写个大点的循环来感受一下:
 
@echo off
for /l %%i in (1,1,5000000) do (
    echo %%i
    if %%i equ 4 (
        goto :end
    )
)
 
:end
exit
 
如果你认为它执行到 %%i 等于 4 的时候就会退出,那就错了。它会遍历完 1 到 5000000 的。
 
 
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论