Оператор условного перехода IF

 Как мы уже выяснили управление в программе передаётся линейно, то есть от оператора к оператору.Но достаточно часто необходимо изменить ход выполнения программы. К примеру возьмём такую конструкцию-"Если линия индикатора МА пересекла линию цены снизу вверх, открываем позицию buy иначе выходим из программы." Для обозначения подобных конструкций во всех языках программирования есть оператор условного перехода IF. Выглядит он так:
"если "IF (<выполняется условие>) {<делаем это>} "иначе" ELSE {<делаем то самое>}

пример:

//если переменная А>переменной В
//то присваиваем переменной А значение переменной В
//иначе
//обнуляем значение переменной А

Запишем этот пример на mql:

if (a>b) //если переменная А>переменной В
a=b; //присваиваем переменной а значение в
else //иначе
a=0; //обнуляем значение переменной а

Оператор после if и else может быть и не один. В таком случае используются фигурные скобки
Пример:

if ( a>b )
{
a=b;
c=b;
}
else
a=0;

или так:

if ( a>b )
a=b;
else
{
a=0;
c=0;
}

Вторая часть оператора (else) это необязательная часть, её может и не быть. Тогда если условие не выполняется, управление просто передаётся следующему оператору.

......
операторы
........
If (a>b)a=b;
......
операторы
......
Попробуем представить это графически:

 

Оператор условного перехода IF

 

Кстати алгоритм программы вообще гораздо нагляднее и понятнее в графическом виде. Поэтому не помешает на этапе планирования программы просто нарисовать алгоритм на бумаге. Конечно это необязательно, но лишним не будет.
Тепреь немного о том, как компилятор сравнивает числа. Операторы сравнения (< > >= <= == != )выдают результат булевого (логического) типа, то есть возможны всего 2 результата -истина (true) или ложь (false) в нашем примере если a действительно больше b, - результат в скобках оператора if будет true. Это позволяет объединять несколько условий в одном операторе if с помощью логических операций

&& логическое И
|| логическое ИЛИ
например:
if (a>b && b<c) {......}
если a больше b и b меньше c. логическое И означает что выражение будет истинным только в том случае, когда истинны оба условия, в нашем примере a>b и b<c. если одно из условий будет ложным, выражение в целом также будет ложным
if ( a>b || b<c ){...}
если a больше b или b меньше c. логическое ИЛИ означает что выражение будет истинным, если любое из условий будет истинным

Операторы if могут быть вложенными, то есть состоять из нескольких операторов if

например:

if ( a>b )
{
if (b<c ) c=0;
if (a <c ) c=0;
}
else
a=0;

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

 

 

 Назад

 

 

TEXT.RU - 100.00%

 

 

Комментарии (0)

Нет комментариев. Ваш будет первым!

Яндекс.Метрика