Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это же разные циклы !!!
for - это перебор перечисления
while - ожидание условия.
Как можно их смешивать, и спрашивать "какой больше нравится" ?
Конечно, можно цикл while преобразовать так, чтобы он выполнял работу for, и наоборот (с помощью небольшого дополнительного кода), но какой в этом смысл ?
Это же разные циклы !!!
for - это перебор перечисления
while - ожидание условия.
Как можно их смешивать, и спрашивать "какой больше нравится" ?
Конечно, можно цикл while преобразовать так, чтобы он выполнял работу for, и наоборот (с помощью небольшого дополнительного кода), но какой в этом смысл ?
Именно это я и пытался сказать. Выбор типа цикла зависит от алгоритма и простоты реализации.
Зачем? Если очень хочется посмотрите тут последнее сообщение как раз там есть то что вы желаете.
https://www.mql5.com/ru/forum/204377#comment_5305035
Это что-ли?
Действительно упрощает и улучшает?.
Это что-ли?
Действительно упрощает и улучшает?.
Ну вы молодец тут не поспоришь. А вот скажите мне что будет, если во время выполнения вашего цикла будет открыта еще N-ное количество позиций и значение OrdersTotal() увеличится на N? Или наоборот будут закрыты позиции и кол-во их уменьшится.
Да нет вы меня не так поняли, я не говорю о том, что можно, а что нельзя. Я имел в виду, что в самых первых версиях еще на заре появления программирования эти циклы были задуманы именно для применения в различных случаях, как я описал выше. for когда кол-во итераций известно, while когда нет. К тому же, по моему мнению, применения циклов так как они были изначально задуманы, упрощает понимание и улучшает читабельность кода.
О "заре программирования" в данном случае говорить не вполне уместно. История показывает: то, что задумывалось ранее для одних целей, в будущем может использоваться совершенно иначе. Сейчас циклы for и while с точки зрения подхода к реализации цикла идентичны. Разница может быть только в том, как их воспринимает компилятор. Но на этот вопрос может ответить только разработчик компилятора. В данном случае это представитель компании MetaQuotes.
Это же разные циклы !!!
for - это перебор перечисления
while - ожидание условия.
Как можно их смешивать, и спрашивать "какой больше нравится" ?
Конечно, можно цикл while преобразовать так, чтобы он выполнял работу for, и наоборот (с помощью небольшого дополнительного кода), но какой в этом смысл ?
Приведите, пожалуйста, пример. Непонятно, о чем Вы говорите. Ведь цикл for стилистически является более компактной версией цикла while. И там, и там есть ожидание выполнения условия. Пока складывается впечатление, что Вы перепутали эту дискуссию со спором об операторах if и switch. Но там реально есть разница.
Как-то пробовал сравнивать быстродействие for и while, выяснилось, что while работает быстрее. Но это не стало аргументом для тотального перехода к while, некоторые привычки не переломить.
О "заре программирования" в данном случае говорить не вполне уместно. История показывает: то, что задумывалось ранее для одних целей, в будущем может использоваться совершенно иначе. Сейчас циклы for и while с точки зрения подхода к реализации цикла идентичны. Разница может быть только в том, как их воспринимает компилятор. Но на этот вопрос может ответить только разработчик компилятора. В данном случае это представитель компании MetaQuotes.
Да я не спорю о том как их использовать. Опять вы не поняли. Да уже не знаю как донести свою мысль, о том что я пытался сказать. В общем последняя попытка :) В учебниках эти циклы и сфера их применения описываются именно так как я сказал. А уж как их будет использовать программист это уже дело самого программиста.
Пока складывается впечатление, что Вы перепутали эту дискуссию со спором об операторах if и switch.
Скорее for и foreach
Приведите, пожалуйста, пример. Непонятно, о чем Вы говорите. Ведь цикл for стилистически является более компактной версией цикла while. И там, и там есть ожидание выполнения условия.
Ну так я и говорю - можно один использовать, как другой и наоборот.
for - предназначен для перебора значений, классический пример - последовательная обработка всех элементов в массиве известного размера.
while - предназначен для ожидания условия, классический пример - цикл выборки, когда заранее неизвестно число элементов, но можно запросить "есть ли еще элементы".
Как первый, так и второй - в конечном итоге преобразуются в ассемблерный код с командой if по установленному флагу. Поэтому, что первый, что второй - можно использовать во всех циклических действиях.
Но каждый из них гораздо логичнее смотрится в блоках, для которых реально предназначен.