Операторы в MQL4: как их использовать в программе?

Что такое программа? Программа представляет собой последовательность операций, собранных вместе для выполнения одной или нескольких задач. Эти операции выполняются через операторы. Рассмотрим, что из себя представляют операторы в MQL4 и как их можно использовать.

Можно определить оператор как символ или последовательность символов, которые заставляют программу выполнять определенное действие. Это своего рода фраза алгоритмического языка, которая предписывает порядок преобразования информации.

Простые операторы в MQL4 записываются в одну строку и заканчиваются точкой с запятой.

int i=10; //Простой оператор, который дает инструкцию программе объявить целую переменную и присвоить ей значение 10.

Составной оператор — это группа простых операторов, которые заключаются в фигурные скобки { }.

if(1==1)
   {
      Print("Привет");
      Print("Мир");
   }

Оператор присваивания =

Оператор присваивания содержит знак равенства, слева от которого указано имя переменной, а справа — ее значение. Оператор присваивания заканчивается точкой с запятой.

int x=100;

Условный оператор if — else

Условные операторы выполняют действие в зависимости от того, верно ли определенное условие.

Оператор if выполняет действие, если заданное условие проверено. В ином случае выполняется действие, которое следует за else.

if(i>0)
{
Print("i больше нуля"); //Программа напечатает "i больше нуля", если i больше 0.
}
else Print("i меньше нуля"); //Программа напечатает "i меньше нуля", если i меньше 0.

Возможно использование оператора if — else без части else.

if(i>0)
{
Print("i больше нуля"); //Программа напечатает "i больше нуля", если i больше 0.
Print("i положительное число"); //Программа напечатает "i положительное число", если i больше 0.
}

Если тело оператора if-else состоит из одного оператора, то фигурные скобки можно не использовать:

if(i>0) Print("i больше нуля"); //Программа напечатает "i больше нуля", если i больше 0.
}

Условный оператор switch

Условный оператор switch проверяет значение переменной в скобках и выполняет соответствующее действие через переключатели case. Оператор switch удобно использовать, когда нужно перебрать очень большое количество вариантов.

Оператор switch содержит один или несколько вариантов case и один вариант default, который обычно размещается в конце, но также может отсутствовать.

 switch(i){
   case 1:
     Print("i равно 1"); //Программа напечатает "i равно 1", если значение i равно 1. Затем программа завершится.
     break;
   case 10:
     Print("i равно 10"); //Программа напечатает "i равно 10", если значение i равно 10. Затем программа завершится.
     break;
   default:
     Print("i не равно 1 или 10"); //Программа напечатает "i не равно 1 или 10", если значение i равно не равно 1 или 10
     break;
 }

Оператор циклa for

Операторы цикла выполняют одно и то же действие определенное количество раз.

Сначала мы объявляем целочисленную переменную для использования в качестве счетчика и присваиваем ей начальное значение. Далее мы указываем условие, которое, если оно будет истинно, заставит цикл работать. Мы также указываем выражение, с помощью которого увеличивается значение счетчика.

К примеру, цикл for определяет переменную i=1 и будет печатать (i) до тех пор, пока i<=10, увеличивая значение i на 1 при каждом исполнении.

//Этот цикл напечатает последовательность от 1 до 10
   for(int i=1;i<=10;i++)
   {
      Print(i);
   }

Первое выражение int i=1 инициализирует переменную i со значением 1. Второе выражение i<=10 — это условие, которое, если оно истинно, будет выполнять код внутри фигурных скобок. Если выражение станет false, цикл заканчивается, и выполнение кода продолжится после закрывающей скобки }.

Третье выражение i++ означает увеличить значение i на единицу. Каждый раз, когда одна итерация цикла завершается, переменная-счетчик увеличивается на единицу. На следующей итерации цикла второй аргумент, в данном случае i<=10, снова проверяется. Обратите внимание, что после третьего выражения точка с запятой отсутствует.

Приведенный выше пример выполнит цикл 10 раз. После каждой итерации счетчик увеличивается на единицу, а после десятой итерации цикл завершается.

Оператор цикла while

Оператор while — это более простой метод использования циклов в MQL4. Цикл for лучше всего подходит, если вы точно знаете, сколько раз вы планируете выполнить цикл. Если вы не уверены в количестве итераций, тогда цикл while будет более подходящим.

В операторе цикла while переменная определена зараранее, и тело цикла должно включать в себя обновление переменной.

i=1;
   //Этот цикл будет печатать последовательность от 1 до 10.
   while(i<=10)
   {
      Print(i);
      i++;
   }

В этом примере используется логическая переменная i. Если i<=10, цикл будет выполняться. Конечно, если значение i никогда не изменится, цикл будет выполняться бесконечно. Таким образом, необходимо, чтобы в какой-то момент цикла нами было прописано условие изменить значение i. Когда это условие становится истинным и i становится равным 11, условие меняется на ложь, и цикл прекращает свое исполнение.

Оператор завершения break

Оператор break служит для досрочного завершения выполнения операторов switch, for или while. Исполнением оператора break является передача управления за пределы оператора switch, for или while, следующему ближайшему оператору.

for(a=0;a<5;a++)
  if(a==3)
    break;
Alert (a);

Оператор продолжения continue

Оператор continue пропускает текущую итерацию в цикле for или while и переходит к исполнению следующей итерации.

for(a=0;a<5;a++)
  if(a==3)
    continue;
Alert (a);