For mas rapido que goto en bucles

Iniciado por kraszic, 29 Diciembre 2008, 00:04 AM

0 Miembros y 1 Visitante están viendo este tema.

kraszic

Bueno, nada mas que una curiosidad.
Estaba mirando unos scripts antiguos que tenia hechos en los que habian muchos bucles por medio de goto y etiquetas, y de vez en cuando si el calculo era grande tardaban bastante.
He probado a modificar estos "bucles" poniendo el comando for y el tiempo se reducia considerablemente.

Visto esto, he hecho un par de pruebas, cogiendo la hora exacta con unas variables y he llegado a la conclusion de que for es doble rapido que un bucle con goto y etiquetas.

Un code con el que podeis comprovarlo:

@echo off

title Que es mas rapido? Goto o For

set /p num=Introduce numeros:
rem Poner un numero entre 1000 y 5000 para que se pueda apreciar la duracion en los dos procesos.

set i=0
set var1=%time%
:bucle
echo %i% >>pru1.txt
if %i%==%num% goto fin
set /a i +=1
goto bucle

:fin
set var2=%time%
echo Pulse tecla
pause>nul
set var3=%time%
for /l %%a in (0,1,%num%) do (echo %%a >>pru.txt)
set var4=%time%

cls
echo TIEMPOS GOTO
echo.
echo %var1% (inicio)
echo %var2% (fin)
echo.
echo.
echo TIEMPOS FOR
echo.
echo %var3% (inicio)
echo %var4% (fin)

pause
exit


¿Para que sirve esto?
Bueno, simplemente es una curiosidad, a lo mejor el tiempo de retraso es por la comparacion del if pero bueno, a partir de ahora hare los bucles que pueda utilizando el comando for.

saludos