Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Уточнение по работе цикла for [D5, WinXP]


Илья_ ©   (2009-01-19 20:07:00) 

Недавно заметил, что в моей программе есть неправильный код,
но при этом он работает так как и ожидалось.

var
 I, Len: Integer;
begin
 Len := 10;

 for I := 0 to Len - 1 do
 begin
   ...
   Len := 5; {сдесь можно присвоить любое значение}
   ...
 end;

Интересно, что цикл выполнится 10 раз несмотря на то,
что Len была изменена. Почему? Я думаю он вычисляет
Len - 1 один раз и запоминает это значение. Что скажете.


KSergey   (2009-01-20 06:21:00) [1]

Если хотим менять количество итераций - в дельфи надо использовть какой-нибудь другой цикл (while/repeat или даже goto :) )


Илья_   (2009-01-19 20:30:00) [2]

Спасибо! А я что-то не нашёл этого текста.


{RASkov}   (2009-01-19 20:24:00) [3]

:)
и написано ведь....
For purposes of controlling execution of the loop, the expressions initialValue and finalValue are evaluated only once, before the loop begins.
...только что посмотрел)


{RASkov}   (2009-01-19 20:22:00) [4]

Нечего тут говорить... Это все в справке должно быть написано...


Наверх

Титульная страница Поиск, карта сайта Написать письмо