3.5.2 Управляющие команды

Управляющие команды определяют порядок выполнения программы (для выполнения, пропуска или повторения различных частей программы и т.д.).
В общем случае имеется 3 типа управляющих слов:
- безусловные переходы
- условные переходы
- циклы
При помощи безусловных переходов можно «прыгать» по всему коду программы и таким образом изменять порядок выполнения написанной программы. Использование таких команд существенно усложняет понимание кода и поэтому рекомендуется избегать использования этих команд. Некоторые современные языки программирования не разрешают использовать команды безусловного перехода (в том числе и EPL).
В случае управляющих слов с условием(условный переход) для реализации этих условий используются операторы сравнения:
== равно, результат является истиной, если сравниваемые значения равны
!= не равно, результат является истиной, если сравниваемые значения не равны
> больше чем, результат является истиной, если значение находящееся слева от оператора больше, чем значение справа от оператора
< меньше чем, результат является истиной, если значение находящееся слева от оператора меньше, чем значение справа от оператора
>= больше или равно, результат является истиной, если значение находящееся слева от оператора больше, чем значение справа от оператора, а также, если соответствующие значения равны
>= меньше или равно, результат является истиной, если значение находящееся слева от оператора меньше, чем значение справа от оператора, а также, если соответствующие значения равны
Условия можно между собой комбинировать, используя следующие логические операции:
&& логическое И, результат является истиной, если оба условия истинны
|| логическое ИЛИ, результат является истиной, если одно из условий истинно
Таким образом, следующее условие
a>=b
можно записать в виде:
(a>b)||(a=b)
Известная управляющая команда, конечно же, IF. Управляющее слово IF позволяет выполнять код в зависимости от результата условия:
if(условие)
код, который выполняется, если условие истинно
else
код, который выполняется, если условие ложно
else-часть может и отсутствовать
Пример команды if:
if(a>3)
b=5;
Если А больше 3х, тогда В присваивается значение 5.
Пример команды if:
if(a>3)
b=5;
else
c=6;
Если А больше 3х, тогда В присваивается значение 5, а если А не больше 3х, тогда В присваивается значение 6.
Более сложные версии команды IF это CASE и SWITCH. Эти команды управляющие команды дают возможность большего разбиения соответственно условиям, однако поскольку язык EPL их не содержит, то здесь мы их рассматривать не будем.
Циклы позволяют некоторую часть кода повторять несколько раз, соответственно условию. Циклы подразделяются на: циклы с предусловием и постусловием, а так же на циклы с определённой длиной и без определённой длины.
While-цикл это цикл с предусловием, что в свою очередь означает, что для продолжения цикла необходимое условие проверяется до выполнения цикла.
while(условие)
код, который выполняется, если условие истинно
Например:
int a=0;
int b=0;
while(a<10)
{
a++;
b+=a;
}
Цикл выполняется пока А меньше десяти, причём при выполнения каждого цикла значение переменной А прибавляется к значению переменной В, следовательно, b=1+2+3+4+5+6+7+8+9+10=55.
do-while-цикл это цикл с постусловием, что в свою очередь означает, что условие необходимое для продолжения цикла проверяется после выполнения цикла.
do
код, который выполняется, если условие истинно
while(условие)
Например:
int a=0;
int b=0;
do
{
a++;
b+=a;
}
while(a<10)
Цикл выполняется для тех пор, пока А меньше десяти, причём при каждом выполнении цикла значение переменной А прибавляется к значению переменной В, следовательно, b=1+2+3+4+5+6+7+8+9+10=55.
Может создаться впечатление, что нет никакой разницы использовать цикл с предусловием или с постусловием. Однако отличие состоит в том, что в случае цикла с постусловием код находящийся внутри тела цикла выполняется как минимум один раз, а в случае цикла с предусловием может так случится, что код не будет выполнен ни разу.
Например:
int a=10;
int b=0;
while(a<10)
{
a++;
b+=a;
}
В результате a=10 и b=0, потому что действия находящиеся в теле цикла не были выполнены ни разу, потому что условие было истинно с самого начала, и оно было проверенно до начала исполнения действий находящихся в теле цикла.
int a=10;
int b=0;
do
{
a++;
b+=a;
}
while(a<10)
В результате a=11 и b=11, потому что действия находящиеся в теле цикла были выполнены один раз, поскольку условие было проверено после этого.
For-цикл, в свою очередь, это цикл с предусловием и заданной длиной
for(переменная, условие, порядок изменения переменной)
код, который выполняется, если условие истинно
for-цикл отличается от циклов рассмотренных ранее в первую очередь тем, что изменение значения переменной, связанной с условием продолжения выполнения цикла, описывается внутри цикла.
Например:
int b;
for(int a=0; а<10;а++)
b+=a;
Результат похож на результат цикла do, значение переменной А изначально присваивается равной нулю, после чего проверяется условие выполнения цикла и если оно истинно, тогда к значению переменной В прибавляется значение переменной А. После этого значение переменной А изменяется соответственно описанному правилу (в данном случае а++, т.е. значение а увеличивает на единицу), проверяется условие продолжения цикла и если оно истинно, тогда действия внутри цикла выполняются ещё раз и т.д.
В результате a=10 и b=0+1+2+3+4+5+6+7+8+9=45.