Каким циклом вы больше любите пользоваться?

 
  • 17% (15)
  • 67% (58)
  • 16% (14)
Всего проголосовало: 87
 

For

 

Без разницы. Да и вообще они предназначены для разных целей.

 
Yuriy Asaulenko:

Без разницы. Да и вообще они предназначены для разных целей.

для каких это разных?)
 
igrok333:
для каких это разных?)

for используется когда количество итераций  цикла заранее известно, while когда не известно и выход из цикла осуществляется по какому нибудь условию. Цикл while еще делится на два подвида: с постусловием - с начало один проход цикла потом проверка условия;   и предусловием - с начало проверка условия выхода из цикла затем сам цикл. Цикл с предусловием может не выполнится ни разу если условие ложно, с постусловием минимум один раз выполнится.

 
Vitalii Ananev:

for используется когда количество итераций  цикла заранее известно

Вовсе не обязательно знать количество итераций. Ведь никто не запрещает написать так:

for (; !IsStopped();)
{
   // тело цикла
}

, while когда не известно и выход из цикла осуществляется по какому нибудь условию.

Тоже без разницы, знаем мы количество итераций или нет. Можно применять и так, и сяк.

Цикл while еще делится на два подвида: с постусловием - с начало один проход цикла потом проверка условия;   и предусловием - с начало проверка условия выхода из цикла затем сам цикл. Цикл с предусловием может не выполнится ни разу если условие ложно, с постусловием минимум один раз выполнится.

Для цикла for легко реализуется оба решения. Таким образом, циклы while и for взаимозаменяемы. Их применение зависит исключительно от предпочтений программиста. Мне почему-то больше нравится for.
 
Ihor Herasko:

Вовсе не обязательно знать количество итераций. Ведь никто не запрещает написать так:

Тоже без разницы, знаем мы количество итераций или нет. Можно применять и так, и сяк.

Для цикла for легко реализуется оба решения. Таким образом, циклы while и for взаимозаменяемы. Их применение зависит исключительно от предпочтений программиста. Мне почему-то больше нравится for.

То что вы описали это частные случаи применения циклов. А вообще изначальная задумка разделения цикла на for и два вида while была именно в том как я написал выше. Иначе давно бы уже оставили какой то один цикл, например for.

...

В C# и PHP к примеру есть еще один вид цикла foreach. 

 
Vitalii Ananev:

То что вы описали это частные случаи применения циклов. А вообще изначальная задумка разделения цикла на for и два вида while была именно в том как я написал выше. Иначе давно бы уже оставили какой то один цикл, например for.

В языках программирования сделано так, что существует несколько способов решения одной и той же задачи. Отсюда следует, что дублирующий функционал не должен отбрасываться только по той причине, что существует его аналог. Поэтому причина существования нескольких видов циклов не в том, что с помощью какого-то из них нельзя что-либо сделать. Иначе бы Вы уже привели пример. Но его попросту не существует.

 
Ihor Herasko:

В языках программирования сделано так, что существует несколько способов решения одной и той же задачи. Отсюда следует, что дублирующий функционал не должен отбрасываться только по той причине, что существует его аналог. Поэтому причина существования нескольких видов циклов не в том, что с помощью какого-то из них нельзя что-либо сделать. Иначе бы Вы уже привели пример. Но его попросту не существует.


Да нет вы меня не так поняли, я не говорю о том, что можно, а что нельзя. Я имел в виду, что в самых первых версиях еще на заре появления программирования эти циклы были задуманы именно для применения в различных случаях, как я описал выше. for когда кол-во итераций известно, while когда нет. К тому же, по моему мнению, применения циклов так как они были изначально задуманы, упрощает понимание и улучшает читабельность кода.

 
Vitalii Ananev:

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

Сравним? Оч распространённый цикл - перебор ордеров, напишите плз вашу версию оператора for для такого перебора

 
Alexander Puzanov:

Сравним? Оч распространённый цикл - перебор ордеров, напишите плз вашу версию оператора for для такого перебора


Зачем? Если очень хочется посмотрите тут последнее сообщение как раз там есть то что вы желаете.

https://www.mql5.com/ru/forum/204377#comment_5305035 

Нужна Ваша помощь
Нужна Ваша помощь
  • 2017.06.16
  • www.mql5.com
Здравствуйте! Столкнулся с одной проблемой при написании советника. Суть в том, что советник открывает ордера по индикатору...