Оператор переключения switch
Ранее я рассказал об условном операторе if-else, с помощью которого можно изменить порядок выполнения операторов в эксперте. Достаточно часто возникают ситуации, когда нам надо заложить в эксперте не два, а больше варианта развития событий. Например, переменная i может принимать целочисленные значения от 1 до 5 и в зависимости от того, какое значение имеет эта переменная, возможны 5 различных последовательностей операторов. Такую задачу легко можно решить с использованием множества вложенных условных операторов if-else.
if (i == 1) оператор1; else if (i == 2) оператор2; else if (i == 3) оператор3; else if (i == 4) оператор4; else if (i == 5) оператор5;
Такой код будет работать, но его очень тяжело читать и воспринимать. Для большей наглядности в таких случаях лучше использовать оператор переключения switch.
Формат оператора switch:
switch(выражение) { case константа1: операторы1 case константа2: операторы2 ... default: операторы_default }
Принцип работы этого оператора: сначала вычисляется значение "выражения", потом среди констант "константа1", "константа2" и др. ищется константа, которая равна результату "выражения". Если такая константа найдена, то оправление передается на соответствующую группу операторов. После этого последовательно выполняются все операторы этой группы и всех последующих, пока не будет выполнен последний оператор в операторе switсh или не будет осуществлен досрочный выход из оператора switсh с помощью оператора break. Если же не было найдено подходящей константы, то управление передается на группу операторов "операторы_default".
Метка default и группа операторов "операторы_default" могут отсутствовать. В этом случае просто не будет выполняться никаких действий, если ни одна из констант не соответствует результату "выражения". Default не обязательно должен быть последним.
Каждый вариант case может быть помечен целой константой, символьной константой или константным выражением.
Теперь в качестве примере перепишем наш пример с переменной i и 5 вариантами действий с помощью оператора switch:
switch (i) { case 1: оператор1; break; case 2: оператор2; break; case 3: оператор3; break; case 4: оператор4; break; case 5: оператор5; break; }
По-моему, выглядит гораздо более читаемо.
Я уверен, что Вам уже не терпиться научить Вашего эксперта торговать. Язык MetaQuotes Language 4 позволяет осуществлять ПОЛНЫЙ контроль над торговым счетом - открывать/закрывать позиции, размещать/модифицировать и удалять ордера, получать информацию об открытых позициях и уже закрытых сделках и многое-многое другое.
В следующем выпуске я хочу привести полный список торговых функций, которые можно вызывать в эксперте, а далее подробно остановлюсь на каждой функции.
Все статьи по теме "Пишем советников для MetaTrader 4".
- Механическая торговая система - миф или реальность?
- С чего начать при написании советника:
- Создаем нового советника - Настраиваем параметры. - Язык MetaQuotes Language 4: