Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.30;
Скачать: CL | DM;

Вниз

while<->repeat   Найти похожие ветки 

 
Dzmitry ©   (2002-04-19 11:06) [0]

хотелось бы узнать, почему большинство программистов предпочитают repeat, а не while


 
Digitman ©   (2002-04-19 11:08) [1]

>Dzmitry

А с чего ты взял, что это так ?


 
Alx2 ©   (2002-04-19 11:10) [2]

Видимо, я в этой классификации в меньшинстве


 
nest ©   (2002-04-19 11:15) [3]

Я Repeat в последний раз использовал 2,5 года назад-на втором курсе на TP7, а потом вообще забыл про такой оператор.
И в чужих исходниках никогда больше не встречал.


 
nest ©   (2002-04-19 11:15) [4]

Я Repeat в последний раз использовал 2,5 года назад-на втором курсе на TP7, а потом вообще забыл про такой оператор.
И в чужих исходниках никогда больше не встречал.


 
kaif ©   (2002-04-19 11:16) [5]

А я вообще никогда не применяю repeat.:((
Наверно, предпочитаю условие цикла видеть в начале его тела...
У меня зрение слабое.
И потом, мне бы больше понравилась конструкция
repeat
while True

а не
repeat
until False

(Это моя личная шиза)
К сожалению, принципы компилятора, видимо не позволяют использовать while в разных смыслах...


 
Alx2 ©   (2002-04-19 11:23) [6]

Но вообще-то все зависит от задачи. Бывает, что больше подходит именно repeat.


 
VictorT ©   (2002-04-19 11:28) [7]

ИМХО, дело не в предпочтении, а в некоторой разнице этих операторов: repeat выполняется как минимум 1 раз, while же может не выполнятся не разу. Правда ещё где-то слышал, что какой-то из этих операторов компилируется в более эффективный код (не знаю, так ли на самом деле).


 
Виктор Щербаков ©   (2002-04-19 11:28) [8]

Alx2 © (19.04.02 11:23)
Согласен. Бывает нужно, чтобы цикл обязательно выполнился один раз. В этом случае repeat удобней.


 
VV ©   (2002-04-19 11:39) [9]

Вообще странный вопрос, это два разных оператора,
в некоторых случаях применять нужно только repeat,
а в других только while


> Согласен. Бывает нужно, чтобы цикл обязательно выполнился
> один раз. В этом случае repeat удобней.


Что значит удобней?
Не удобней, а только его и нужно применять.


 
dzmitry ©   (2002-04-19 13:53) [10]

я вижу, тут пишут только те кто не пользуется repeat
а так, при просмотре многих исходников всречается довольно много ситуаций - здесь лучше применять именно while, то есть программируют в ущерб логике...
а сам я применяю более repeat чем while,
всё равно конференция называется "Потрепаться"
но по-моему это от засилия связки begin<->end...


 
Андрей Сенченко ©   (2002-04-19 15:05) [11]

Честно говоря, насколько я помню посты о циключеской обаботке данных Юрия Зотова ©, Алексея Петрова © и Анатолия ПОдгорецкого © - у них значительно чаще встречается конструкция while.

Лично я предпочитаю Repeat хотя бы потому, что внутри него можно определить - что с выполнимостью условия, в то время как while просто в тихушку не отработает


 
drpass ©   (2002-04-19 15:07) [12]

В Delphi обычно использую while - он просто в большинстве случаев лучше подходит по алгоритму. А вот в TP3-5 любимая комбинация была "repeat until keypressed" :)


 
PaRL ©   (2002-04-20 21:10) [13]

Я вообще использую только while, потому что for требует больше условий(конечное значение), а иногда их нет :)


 
Anatoly Podgoretsky ©   (2002-04-20 21:15) [14]

А зачем их путать, ассоциации проводить, это два разных типа, один с пред, а другой с пост условием, вот и применять надо в зависимости от этого.


 
Mystic ©   (2002-04-21 00:34) [15]

Почти всегда использую repeat until False;

1. Не надо писать begin..end

2. Не надо думать что лучше repeat или while --- пиши if Условие then Break хоть в начале, хлть в конце, хоть в середине.

3. Меньше менять при отладке (часто изменения цикла while приводят к repeat until False, особенно если не знаешь чего хочешь)

Поэтому часто получается нечто вроде
repeat
if Условие then Break;
Тело цикла
until False;


Впрочем while not Eof(f) do получается автоматом.


 
kaif ©   (2002-04-21 00:59) [16]

>Лично я предпочитаю Repeat хотя бы потому, что внутри него >можно определить - что с выполнимостью условия, в то время как >while просто в тихушку не отработает

While прекрасно отрабатывает изменение условий.
Кроме break, кстати есть еще и очень мощный оператор continue, позволяющий опять начать цикл, прервав его тело в данном месте.
Так как я вообще очень редко использую циклы, использую, в сосновном while.
Repeat, в соответствии с его назначением, следует использовать если нужен 1 проход, как минимум. Но это довольно редкая ситуация (у меня лично).


 
Aleks1   (2002-04-21 04:37) [17]

Предпочитать что-либо - дело каждого.
Но Анатолий Подгорецкий привел наиболее правильный ответ:

Anatoly Podgoretsky © (20.04.02 21:15)


 
Song ©   (2002-04-21 10:41) [18]

2Mystic © (21.04.02 00:34)
Полностью аналогично, поддерживаю!
Тока у меня есть ещё привычка при работе например с TTreeView, какая-то задача перебрать все ветви. Можно конечно было бы использовать TTreeView.Items.Count, но что-то он мне не катит. Так мне больше нравится:

Repeat
try
IF Node... и т.д.
Node:=Node.GetNext;
except
Break;
end;
Until False;

И тогда: если дерево кончится, сразу же будет сгенерировано исключение, а если нужно выйти из цикла раньше просто можно использовать тихое исключение - Abort



Страницы: 1 вся ветка

Текущий архив: 2002.05.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.017 c
14-97421
Kolyan
2002-04-22 17:22
2002.05.30
MS SQL и DBF таблицы


3-97158
asafr
2002-05-06 17:05
2002.05.30
Переменное название временной таблицы в сохраненной процедуре.


14-97391
Алекс555
2002-04-06 11:31
2002.05.30
---|Ветка была без названия|---


1-97217
ga3
2002-05-18 03:19
2002.05.30
Word&Delphi


1-97323
Новенький в Делфи
2002-05-19 15:23
2002.05.30
Не могу обратиться к компоненту