Меню сайта |
|
|
|
Статистика |
|
Онлайн всего: 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.
|
|
Поиск |
|
|
|
Форекс портал
|