Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
3-97185
Чел
2002-05-07 14:25
2002.05.30
Подскажите


3-97111
Elvira
2002-04-30 11:10
2002.05.30
субд Oracle8i


1-97227
Maloy
2002-05-20 14:18
2002.05.30
Использование Ворда для генерации отчетов


14-97384
Morfey
2002-04-20 19:12
2002.05.30
декоммпилятор


3-97202
dim-
2002-05-08 20:35
2002.05.30
Посоветуйте компонент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский