Лекции по проге / 3_Управл операторы - альтернативы
.pdf
Использование оператор выбора switch без использования оператора прерывания break
При вводе пользователем символа 'Y' на экране появятся два сообщения:
"Вы выбрали Да"
"Вы нажали что-то не то"
21
Ограниченность оператора switch
С помощью оператора switch нельзя реализовать ветвление, если альтернативные действия разделяются условиями, в которых используются операции
>, >=, <, <=
В этом случае используется комбинация оператора if...else
22
Комбинация оператора if...else
if( <условие 1> ) <оператор 1>
....
else if( <условие M> ) <оператор M>
else
<оператор M+1>
23
Задание
Вычислите функцию знака
1, |
если x > 0 |
||
y = sign (x) = 0, |
если x |
= |
0 |
-1, |
если x |
< |
0 |
24
Использование комбинации условного оператора if...else
// Вычисление y = sign(x) |
|
|||
if |
(x < |
0) |
y = -1; |
|
else if |
(x == |
0) |
y = |
0; |
else if |
(x > |
0) |
y = |
1; |
// ... или |
|
|
|
|
if |
(x < |
0) |
y = -1; |
|
else if |
(x == 0) |
y = |
0; |
|
else |
|
|
y = |
1; |
25
Критерии выбора оператора ветвления
|
|
|
|
Оператор ветвления |
Критерии |
|
Оператор if |
Действие (оператор) выполняется |
|
при определенном условии |
|
|
|
|
|
|
Действие (оператор) выполняется |
|
Оператор |
при определенном условии, в |
|
if...else |
противном случае выполняется |
|
|
другое действие (оператор) |
|
Оператор switch + |
Каждое действие (оператор) |
|
оператор break |
|
|
Комбинация |
выполняется при определенном |
|
оператора |
условии |
26 |
if...else |
|
Задание
Дана переменная x. Выполните операцию
x++, если x > 0
x--, если x < 0
27
Выбор оператора ветвления
Для вычисления операции необходимо выполнить два разнородных действия x++ и x--, следовательно if не подходит
Каждое действие может быть выполнено только при определенном условии (формулировка "иначе" не применима), следовательно if...else не подходит
В условии используются операции > и <, следовательно switch + break не подходит
28
Выбор оператора ветвления
if |
(x |
> |
0) |
x++; |
else if |
(x |
< |
0) |
x--; |
29
Это надо помнить!
●В операторах if, while, do...while условия обязательно задаются в круглых скобках ()
●В операторе switch выражение для сравнения обязательно задается в круглых скобках ()
●Если необходимо вставить несколько операторов в операторы ветвления или цикла, то это можно сделать используя фигурные скобки {}
●Операторы ветвления и цикла могут вкладываться
30 друг в друга
