Последовательность инструкций N

Последовательность инструкций 2

Последовательность инструкций 1

Объявления

Else

If (выражение-условие )

инструкция 1;

инструкция 2;

Если значение выражения-условия отлично от нуля, выполняется инструкция1 (блок1), при нулевом значении выражения-условия выполняется инструкция 2 (блок2).

Алгоритмическая структура, соответствующая этому оператору, показана на рис.2.3.

 

 

Рис. 2.3. Алгоритмическая структура выполнения полной формы оператора ветвления

 

 

Пример 28. Полная форма условного оператора. Вычисление корней квадратного уравнения

if (d>=0)

{

x1=(-b-sqrt(d))/(2*a);

x2=(-b+sqrt(d))/(2*a);

cout<< “\nx1=”<<x1<<“x2=”<<x2;

}

else cout<<“\nРешения нет”;

Допускается использование вложенных инструкций if. Инструкция if может быть включена в конструкцию if или в конструкцию else другой инструкции if:

 

Пример 29.

int main ( ) { int t = 2, b = 7, r = 3; if (t > b) { if (b < r) r = b; } else r = t; return 0; }

 

В результате выполнения программы перед инструкцией возврата значение переменной r станет равным 2.

 

2.Переключатель (инструкция выбора).

Формат инструкции следующий:

 

switch (выбирающее выражение)

{

case константа 1:

case константа 2:

case константа N:

default:

последовательность инструкций

}

Все последовательности инструкций, следующие за case, должны заканчиваться одной из инструкцией: break, return или goto; как правило, используется break. Если же удалить эту инструкцию, допустим, из последовательности инструкций 1, то после неё начнёт выполняться последовательность 2 и т. д.

 

Пример 30.

int i = 2; switch (i) { case 1: i += 2; case 2: i *= 3; case 0: i /= 2; case 4: i -= 5; default: ; }

Последовательности инструкций (точнее, их отсутствие) без прерывающих инструкций могут использоваться для выполнения одних и тех же действий для нескольких вариантов выбора:

 

Пример 31.

char ch;

int aCount = 0;

int bCount = 0;

switch (ch)

{

case ‘a’:

case ‘A’:

++aCount;

break;

case ‘b’:

case ‘B’:

++bCount;

break;

}

Использование инструкции break позволяет в необходимый момент прервать последовательность выполняемых инструкций в теле switch путем передачи управления инструкции, следующей за switch.

 

Пример 32.

char OP; int x, y, z; switch (OP) { case '+': x = y + z; break; case '-': x = y - z; break; case '*': x = y * z; break; case '/': x = u / z; break; default: ; }

Отметим, что в теле инструкции switch можно использовать вложенные инструкции switch, при этом с ключевыми словами case можно использовать одинаковые константные выражения.

Пример 33.

switch (a) { case 1: b = c; break; case 2: switch (d) { case 0: f = s; break; case 1: f = 9; break; case 2: f -= 9; break; } case 3: b -= c; break; … }