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

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

О правильном коде [D7, XP]


Страницы:   1 2

ifrau ©   (2008-07-29 13:30:00) 

Доброго времени. Взять, например, цикл:

 while count <= length(src) //здесь src: string
 begin
   ...


или правильнее будет заранее присвоить длину строки в переменную:

len := length(src);
и цикл писать уже так:
 while count <= len do
 begin
   ...


В общем, что лучше, выделять для таких вещей переменные (а их может быть много) или при каждом цикле вычислять длину строки (цикл может очень много раз запускаться) ? Спасибо


TUserClass   (2008-07-29 13:42:00) [21]

while count <= length(src) //здесь src: string
begin

Кстати, о правильном коде - doпропущено. :)


ifrau   (2008-07-29 13:41:00) [22]

Johnmen, Не лучше, а правильнее. Что в моём случае будет правильнее?

Palladin, почему? Хотя бы в двух словах


Григорьев Антон   (2008-07-29 13:39:00) [23]

Делать переменные.

Существует такое понятие - инвариант цикла. Так называется выражение, значение которого не меняется во время выполнения цикла. С точки зрения оптимизации лучше вычислить такое выражение один раз и сохранить в переменной. Кроме того, понятие инварианта цикла очень важно с точки зрения верификации кода. Выявление инвариантов способствует тому, что код становится понятнее для чтения (в первом случае читающему не сразу становится ясно, может ли меняться длина src внутри цикла, во втором - сразу). А ещё вывление инвариантов цикла - важная часть разработки алгоритма, если это делать, то в сложных случаях будет проще не запутаться.

На всякий случай добавлю, что цикл for оптимизировать таким образом не надо - он вычисляет свои границы один раз в любом случае.


Palladin   (2008-07-29 13:35:00) [24]

правильней будет использовать for


Johnmen   (2008-07-29 13:34:00) [25]

Что значит "лучше"?
И с чего ты взял, что длина строки вычисляется?


Страницы:   1 2

Наверх

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