Как утверждают многие, переменная I после цикла должна быть неопределенной. При использовании в реальном мире оно будет определяться до последнего значения, которое имело перед «разрывом», или до N + 1, если цикл выполняется до истечения срока. Однако на такое поведение нельзя полагаться, поскольку четко указано, что он не предназначен для работы.
Кроме того, иногда I даже не назначается. Я сталкивался с таким поведением в основном при включенной оптимизации.
Для такого кода
I := 1234;
For I := 0 to List.Count - 1 do
begin
//some code
end;
//Here, I = 1234 if List.Count = 0
Итак ... Если вы хотите узнать значение I после цикла, лучше перед тем, как выйти из цикла, лучше присвоить его другой переменной.