![]() |
problema extraño con ciclo for
Un cordial saludo a todos.
Tengo un problema extraño con un ciclo for, lo inicializo Código:
for i := 0 to 3 Es algo muy raro, nunca me habia sucedido en delphi y tampoco en cualquier otro lenguaje. Agradezco cualquier ayuda que me puedan brindar. |
Hola, no tienes que preocuparte, es culpa del optimizador de Delphi, cuando compilas el proyecto, si tienes activada la opción usar el optimizador, te haces como esta, cambiarte internamente el bucle for..downto en lugar de un for..to, eliminar variables que no va a usar, etc.
Si vas a las opciones del programa->compilar y creo que es el primer check que aparece a la izquierda (creo que se llama optimizer), lo desmarcas ya toca ir bien. Espero te sirva, Saludos |
Bueno no pones el código completo, pero puedo intentar adivinar lo que pasa. Si dentro del bucle no utilizas el valor de la variable i la optimización del compilador hace que la variable i disminuya en vez de incrementarse ya que esta esta manera es mas eficiente. Es decir, si tenemos esto:
Y ejecutamos nuestro programa paso a paso veremos que i toma el valor 4, 3, 2, 1 debido a la optimización del compilador. En principio el pitido se sigo oyendo 4 veces así que lo que haga el compilador no nos importa. Sin embargo si tenemos esto otro:
Y lo vuelves a ejecutar paso a paso, veras que ahora la i toma los valores correctos, 0, 1, 2, 3. |
muchas gracias por sus respuestas, probe con ambas respuestas y Seoane tiene razón, lo que no entiendo es porque si tengo un codigo como el siguiente el for no funciona
Código:
for i := 0 to 3 |
Solo para agregar, el detalle de la optimización: http://www.clubdelphi.com/foros/show...96&postcount=5
Saludos! |
La franja horaria es GMT +2. Ahora son las 21:18:05. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi