Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алг и прог СТАНКИН.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.65 Mб
Скачать

3.1.2Оператор else-if.

Д ля многоступенчатого принятия решений используют конструкцию else-if (синтаксис):

if (условие1)

оператор1

else if (условие2)

оператор2

else if (условие3)

оператор3

·························

[else оператор]

Семантика: условия операторов “if проверяются сверху вниз. Как только встречается истина, выполняется соответствующий оператор и последовательность проверок прекращается. Последняя else-часть срабатывает, если все предыдущие условия ложны. Эта часть может отсутствовать.

П ример 8. Пусть reit - рейтинг студента после сессии. Предлагаемый оператор показывает, кто он такой.

if (reit >= 45)

cout << "Вы - отличник!\n";

else if (reit > 34)

cout << "Вы неплохо учитесь!\n";

else if (reit > 25)

{ if (reit > 29)

cout << "Вам нужно подтянуться!\n";

else

cout << "Такие инженеры нам не нужны!\n";

}

else

cout << "Вас давно ждут в призывном пункте!\n ";

3.2Оператор-переключатель. Оператор break.

Оператор-переключатель (оператор множественного выбора) предназначен для выбора одного из многих путей выполнения программы. Имеет вид (синтаксис):

switch(выражение)

{

case константы1: // метки1

операторы1

case константы2: // метки2

операторы2

····················

[default

операторы]

}

Семантика: сначала вычисляется значение выражения, которое должно быть целого типа. Затем это значение сравнивается со значениями констант, указанных после слов case в виде меток. Если есть совпадение, то выполняются операторы, соответствующие этому case и все последующие.

Операторы, стоящие за default, выполняются, если значение выражения не совпало ни с одной из констант. Если default отсутствует, то не выполняется ни один оператор.

Пример 9.

Операторы

Выведут на экран

i=2;

switch(i)

{

case 1: cout << "Привет 1\n";

case 2: cout << " Привет 2\n";

case 5: cout << " Привет 5\n";

default cout << "Просто привет \n";

}

Привет 2

Привет 5

Просто привет

Каждая ветвь case может быть помечена одной или несколькими константами (или константными выражениями). Все константы должны отличаться друг от друга. В каждой ветви может быть несколько операторов, может их не быть совсем.

Если нужно выйти из переключателя, не выполняя все последующие ветви case, можно использовать оператор break (выход из switch) или return (выход из функции).

Пример 10. В указанном фрагменте программы после нажатия пользователем одной из клавиш ее код занесется в переменную c и в случае нажатия клавиш 'А', 'а', 'Б' или 'б' будет выдано соответствующее сообщение.

c=getch();

switch(c)

{

case 'A': 'a': cout << "Нажата буква А\n"; break;

case 'Б':

case 'б': cout << "Нажата буква Б\n"; break;

}

Последний оператор break не обязателен, но лучше его всегда ставить. Это поможет не забыть его указать, если в будущем будут добавляться ветви case в этот переключатель.