Добро пожаловать на шестое занятие моего курса.
Надеюсь, что Вам понравились предыдущие уроки.
Мы уже поговорили про циклы. Теперь Вы знаете, что циклы - это один из двух способов изменить обычный порядок выполнения программы сверху вниз. Второй способ - это условия.
Условия могут провоцировать однократный прыжок в другую часть программы, в зависимости от значаения некоторого выражения.
1 - Оператор if
Оператор if является самым простым среди операторов условия.
Пример:
Код:
if( x < 100 )
Print("hi");

Схема 1. Оператор if.
Несколько операторов в теле if
Точно, как и в циклах, тело оператора if может состоять из нескольких операторов, взятых в фигурные скобки.
Пример:
Код:
if(current_price==stop_loss)
{
Print("you have to close the order");
PlaySound("warning.wav");
}
Отсюда происходит очень много ошибок - когда Вы забываете символ ==, и вместо него используете символ операции присваивания =.
Вложенные циклы и условия
Циклы и условия можно вкладывать друг в друга.
Пример:
Код:
for(int i=2; i<10; i++)
if(i%2==0)
{
Print("It's definetly not a prime number");
PlaySound("warning.wav");
}
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!");
}
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-константами.
В случае 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.