Привет! Допустим есть переменная Х которая может быть либо 0 либо 1, какой оператор разумнее использовать switch или if?
Также хотелось бы рассмотреть вариант переменной с более широкой амплитудой значений...
Странно такой вопрос от человека с таким рейтингом)
В машинном коде если не ошибаюсь будет условный переход и коммутируемый переход. По производительности в общем случае одно и тоже.
По удобству читаемости и поддерживаемости кода - на ваш вкус.
Главное отличие - в switch возможность выполнения нескольких веток без лишних условных проверок. В зависимости от задачи это м.б. вообще не нужно, так и жизненно необходимо. И если это важно то тут уже будет играть роль разница в производительности.
Найрамдал! (по монгольски- привет)
я всегда решаю вопросы по бейсику.
IF THEN ELSE GOTO.
Странно такой вопрос от человека с таким рейтингом)
В машинном коде если не ошибаюсь будет условный переход и коммутируемый переход. По производительности в общем случае одно и тоже.
По удобству читаемости и поддерживаемости кода - на ваш вкус.
Главное отличие - в switch возможность выполнения нескольких веток без лишних условных проверок. В зависимости от задачи это м.б. вообще не нужно, так и жизненно необходимо. И если это важно то тут уже будет играть роль разница в производительности.
Ну почему же старанно?:) Я просто не стесняюсь спрашивать... А вопрос касается именно производительности...
Ну раз производительности тогда я думаю так - если серия if else простая проверка на равно, без И ИЛИ и пр. и если в switch после каждого кейса брейк, то будет на 100% совпадать и машинный код и следовательно производительность.
В остальных случаях будет отличаться в зависимости от того что я уже сказал - конкретного кода.
Ну почему же старанно?:) Я просто не стесняюсь спрашивать... А вопрос касается именно производительности...
в случае 0 и 1 как у вас, подозреваю почти без разницы.
В случае множества значений однозначно switch
в случае 0 и 1 как у вас, подозреваю почти без разницы.
В случае множества значений однозначно switch
если значения допустим целые от 0 до 10 (да любые) и нет доп.условий как я описал, то чем лучше switch ? В нём разве меньше элементарных условных проверок будет?
Я не большой знаток в кодинге конечно.
Думаю, что компилятор для каждого варианта подготовит одинаковую цепочку действий для процессора.
Разницы скорее всего не будет.
MQL4-5 - урезанная версия бейсика.
Вся красота бейсика нет.
да многое упростили,
но графики мало.
где PLOT ?
где CIRCLE ...
без них тоскаа)))
Я не большой знаток в кодинге конечно.
Думаю, что компилятор для каждого варианта подготовит одинаковую цепочку действий для процессора.
Разницы скорее всего не будет.
Не совсем так. свитч просто проверяет на равно, а в if можно и больше меньше и всякие И ИЛИ загнать. Поэтому сравнивать имеет смысл только в одинаковых условиях, как я описал выше.
много раз уже писалось (погуглите) - switch будет работать гораздо быстрее if-а
но switch работает только с целыми константами
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет! Допустим есть переменная Х которая может быть либо 0 либо 1, какой оператор разумнее использовать switch или if?
Также хотелось бы рассмотреть вариант переменной с более широкой амплитудой значений...