КАК ЗАРАБОТАТЬ НА ФОРЕКСЕ
Пятница, 03.05.2024, 07:07
Приветствую Вас Гость | RSS
 
Главная Учимся программировать на языке MQL4-Урок 6 - Циклы и Условия (часть 2)РегистрацияВход
<a href="http://instaforex.com/ru/">Форекс портал</a>
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Урок 6 - Циклы и Условия (часть 2)

Добро пожаловать на шестое занятие моего курса.
Надеюсь, что Вам понравились предыдущие уроки.

Мы уже поговорили про циклы. Теперь Вы знаете, что циклы - это один из двух способов изменить обычный порядок выполнения программы сверху вниз. Второй способ - это условия.
Условия могут провоцировать однократный прыжок в другую часть программы, в зависимости от значаения некоторого выражения.


1 - Оператор if

Оператор if является самым простым среди операторов условия.
Пример:

Код:
if( x < 100 )
Print("hi");
После if идут круглые скобки, в которых записывается выражение проверки (в данном случае x < 100). Если результат выражение проверки является истиной (true), то тело оператора if будет выполнено. В данном случае тело состоит из одного оператора - Print("hi"); . А если результат выажения проверки является ложью (false), то тело оператора if НЕ выполняется, а контроль переходит оператору, следующему за телом if.



Схема 1. Оператор if.


Несколько операторов в теле if

Точно, как и в циклах, тело оператора if может состоять из нескольких операторов, взятых в фигурные скобки.
Пример:

Код:
if(current_price==stop_loss)

{

Print("you have to close the order");

PlaySound("warning.wav");

}
Обратите внимание на сумбол == и выражении проверки. Это одна из операций сравнения, которые Вы изучали в уроке 4 "Операции и Выражения".
Отсюда происходит очень много ошибок - когда Вы забываете символ ==, и вместо него используете символ операции присваивания =.



Вложенные циклы и условия

Циклы и условия можно вкладывать друг в друга.
Пример:

Код:
for(int i=2; i<10; i++)

if(i%2==0)

{

Print("It's definetly not a prime number");

PlaySound("warning.wav");

}
Заметьте, что тело цикла в данном примере НЕ нужно заключать в фигурные скобки, потому что оператор if и все операторы внутри его тела считаются как один оператор.


2 - Оператор if ... else

Оператор if позволяет что-то сделать, если определённое условие выполняется. Допустим, мы хотим сделать что-то другое, если это условие не выполнено. Для этого есть оператор if ... else. Он состоит из оператора if и его тела, после чего идёт ключевое слово else и его тело.
Пример:

Код:
if(current_price>stop_loss) 

Print("It’s not too late to stop, please stop!");

else

Print("you're playing well today!");


Схема 2. Оператор if ... else.


Вложенные операторы if...else

Операторы if ... else и оператор if можно как угодно вкладывать друг в друга.
Пример:

Код:
if(current_price>stop_loss) 

Print("It’s not too late to stop, please stop!");

if(current_price==stop_loss)

Print("It’s time to stop!");

else

Print("you're playing well today!");

Есть опастность, связанная с вложенными операторами if ... else. По невнимательности Вы можете случайно связать какой-то else не с тем if.
Чтобы избежать подобных ошибок, можно сделать одно из двух:

1 - всегда брать пары if ... else в фигурные скобки.
Вот так:

Код:
if(current_price>stop_loss) 

{

Print("It’s not too late to stop, please stop!");

if(current_price==stop_loss)

Print("It’s time to stop!");

else

Print("you're playing well today!");

}
2 - Если Вам не подходит 1й вариант (слишком много этих if ... else, или Вам просто лень), то просто следуйте правилусвязывать else с ближайшим if.


3 - Оператор switch

Если у Вас есть большое дерево условий, и все условия зависят от одного параметра, то можно применить оператор switch.
Пример:

Код:
switch(x)
{

case 'A':
Print("CASE A");
break;

case 'B':

case 'C':
Print("CASE B or C");
break;

default:
Print("NOT A, B or C");
break;

}
После ключевого слова switch идут круглые скобки. Внутри этих скобок находится switch-константа. Внктри фигурных собок находятся case-константы - это проверямые условия switch-константы. Они записываются в виде case <значение>: <что делать>. <Значение> может быть integer, character или неизменным выражением. Неизменность выражения означает, что оно не зависит от переменных. Например, выражение X+Y не является неизменным.

Как же работает указанный пример?
Оператор switch сравнивает switch-константу поочерёдно со всеми case-константами.

В случае x=='A' программа напечает "CASE A" и оператор break; прервёт оператор switch. Контроль передастся за пределы блока switch.

В случае x=='B' или x=='C', программа напечатает "CASE B or C". Это потому что нет оператора break; в case 'B': .

В случае x!= ни одной из case-констант, оператор switch выполнит блок default: и напечатает "NOT A, B jr C".


Схема 3. Оператор switch.
Поиск
<a href="http://instaforex.com/ru/">Форекс портал</a>
Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz