Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

1.3.6Лесенка if-else-if

Еще один специальный способ использования конструкции if-else – это так называемая лесенка if-else-if. Целевой случай использования условного оператора в таком виде – это выбор одной из нескольких взаимно исключающих альтернатив. Рассмотрим применение лесенки if-else-if для решения следующей задачи: пользователь вводит мощность двигателя в лошадиных силах, а программа сообщает величину транспортного налога, соответствующую введенной мощности. Пусть схема расчета налога такая:

  • 0-99 : 500 рублей;

  • 100-199 : 1000 рублей;

  • 200-299 : 1500 рублей;

  • 300 и более : 2000 рублей.

Данная программа будет иметь следующий вид:

cout << "Введите мощность:\n";

int power; cin >> power;

if (power>=300) {

cout << "2000 рублей.\n";

} else if (power>=200) {

cout << "1500 рублей\n";

} else if (power>=100) {

cout << "1000 рублей\n";

} else if (power>0) {

cout << "500 рублей\n";

} else {

cout << "Ошибка\n";

}

Обратите внимание на то, что в данном примере каждый if обходится одним сравнением и, например, писать power>=100 && power<200 не нужно, поскольку альтернативы взаимно исключают друг друга, а случай power<200 проверен выше. Несмотря на вложенность операторов друг в друга, при использовании лесенки отступы делать не принято.

1.3.7Контрольные вопросы

  1. Зачем нужны условные операторы? Приведите примеры их использования.

  2. Опишите синтаксис условного оператора if.

  3. Перечислите операции сравнения и логические операции. Объясните их работу и приведите примеры.

  4. Как можно реализовать консольное меню при помощи логических операций и функций ввода/вывода?

  5. Объясните работу оператора ?:.

  6. Что такое вложенные операторы if-else?

  7. Что такое лесенка if-else-if? Приведите пример и изобразите для него блок-схему с псевдокодом.

Тема 1.4. Условный оператор switch-case

Условный оператор switch-case предназначен для выбора одной из нескольких альтернатив дискретных типов int, char и пр. Данный оператор не предусматривает возможность выбора одного из нескольких диапазонов – для этих целей следует использовать лесенку if-else-if.

1.4.1Синтаксис оператора switch-case

При использовании оператора switch-case указывается проверяемое выражение и действия, которые следует выполнить, когда это выражение равно определенным константам; каждая группа оператором завершается оператором break.

switch (<проверяемое выражение>) {

case <значение_1> :

<группа_операторов_1>;

break;

case <значение_2> :

<группа_операторов_2>;

break;

...

case <значение_N> :

<группа_операторов_N>;

break;

default :

<группа_операторов_по_умолчанию>;

break;

}

Операторы из разных групп выполняются в зависимости от значения проверяемого выражения; если ни одно из значений не совпадает с проверяемым, то выполняется группа операторов после метки default. Рассмотрим пример: введем оценку и выведем ее словесный эквивалент.

int mark;

cout << "Введите оценку: ";

cin >> mark;

switch(mark) {

case 5 :

cout << "Отлично\n";

break;

case 4 :

cout << "Хорошо\n";

break;

case 3 :

cout << "Удовлетворительно\n";

break;

case 2 :

cout << "Неудовлетворительно\n";

break;

case 1 :

cout << "Кол\n";

break;

default :

cout << "Нет такой оценки\n";

break;

}