来源:自学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