¿Bug en el delphi?

Me encontré con este misterio en delphi y necesito una solución.
Fíjate en este simple código:
var
i,a: integer;
begin
i:= 0;
a:= 0;
for i:= 1 to 10 do
a:= a * 2;
end;
Lo misterioso del asunto es que el contador va contando hacia atrás,
es decir 10,9,8.. ¿1 se trata de un bug?
En la parte de abajo de la ventana de código me muestra:
Value assigned to 'i' never used
¿Cómo soluciono este drama?
Desde ya muchas gracias.

1 respuesta

Respuesta
1
No, no es un bug...
Delphi realiza un optimizado de tu código internamente: puesto que el valor que le asignas a "i" en cada pasada del for no es usado para nada (solamente para realizar 10 veces lo mismo), el optimizador no se siente obligado a mostrarte el valor de "i" de la manera que tu has puesto, sino que simplemente hace el for las 10 veces de la manera que a el le parece más optima.
Si hicieses alguna operación con "i" dentro del bucle entonces verías los valores correctamente.
Un saludo
P.D. El primer valor de "a" debería ser 1, no 0... porque si no el resultado de "a" siempre será 0, ¿no?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas