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

Вниз

какое условие выхода/продолжения цикла лучше использовать   Найти похожие ветки 

 
111   (2002-04-07 21:09) [0]

Вот такой вопрос возник:какое условие выхода/продолжения цикла лучше использовать?
Например, while i<=10 do или while i<>11 ?
until i=11 или until i>10 ?
Условие может быть достаточно сложным и перескочить нужное значение. С одной стороны, программа будет стабильнее при условии типа <= ,но есть риск не выловить ошибки.


 
drpass   (2002-04-07 23:21) [1]

На счет первого не знаю, а во втором случае - однозначно until i=11, т.к. при наборе этого не придется нажимать шифт


 
ION T   (2002-04-08 00:09) [2]

Ну, где-же народ, который недавно доказывал о том, что все умные кодеры пишут на асм-е?

Как удобно, так и пиши - они все равно компилируется в одну инструкцию и по скорости одинаковые........:)


 
Digitman   (2002-04-08 08:27) [3]

Конструкция WHILE..END после комиляции, как правило, превращается в чуть более эффективный объектный код, нежели REPEAT..UNTIL. Многие пособия и справочники по Delphi рекомендуют выбирать при прочих равных условиях именно первую конструкцию.


 
111   (2002-04-08 22:08) [4]

Речь идет не о преимуществе while или repeat, а о том, какое условие лучше использовать: <= или = . При условии <= больше вероятность того, что цикл когда-нибудь закончится :) Но если надо , чтобы он заканчивался при достижении определенного значения, то может быть, лучше использовать = ? Тогда, если программа зависает- можно первым делом искать ошибку в цикле :)


 
ION T   (2002-04-08 23:02) [5]

Вообще лучше for..do лупы использовать - в них условие обрабатывается только раз.......

А так, я же сказал что эти условия компилируются в одну асм инструкцию - cmp за которой идут джамперы (jnz, jz, jnl, jl, jg,...........) а они все с точки зрения проца занимают одно и то-же количество циклов ЦПУ (3 кажется, но зависит от располажения параметров - в регистрах, в памяти и какой тип самого прыжка..........но вас это не должно волновать). В общем здесь используй <=


 
Anatoly Podgoretsky   (2002-04-08 23:33) [6]

Это должно волновать, если предсказание не выполнится то будет пеналти. А если не волнует, то конечно <= лучше, так как на одно нажатие клавиш меньше


 
ION T   (2002-04-09 00:03) [7]

Именно поэтому repeat..until хуже, но здесь выполняются оба........а если не выполняются, то, по моему, оно вообще один цикл занимает на инремент EIP......

Но аргумент о меньшем количестве нажатий клавиш мне однозначно нравится;)


 
Anatoly Podgoretsky   (2002-04-09 00:25) [8]

Так вопрос то такой, а если бы автор интересовался результатом, то посмотрел бы CPU view



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

Форум: "Потрепаться";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
4-64878
REL_
2002-03-15 14:54
2002.05.20
CreateWindow


4-64889
o_viz2000
2002-03-16 21:43
2002.05.20
MAIL SLOTS


14-64781
paul_shmakov
2002-04-09 11:33
2002.05.20
MSDN Magazine теперь на русском!


3-64470
Брат
2002-04-22 12:00
2002.05.20
Сообщение DEADLOCK


6-64758
Landgraph
2002-02-01 13:11
2002.05.20
Прокся...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский