2.16. Структура множественного выбора switch
Мы рассмотрели структуру с единственным выбором if и структуру с двойным выбором if/else. Но порой алгоритм может содержать ряд альтернативных решений, причем некоторую переменную (или выражение) надо проверять отдельно для каждого постоянного целого значения, которое она может принимать; в зависимости от результатов этой проверки должны выполняться различные действия. Для принятия подобных решений в С++ имеется структура множественного выбора switch.
Структура switch состоит из ряда меток case и необязательной метки default (умолчание). Программа на рис. 2.22 использует switch для расчета числа различных буквенных оценок, полученных студентами на экзамене.
В этой программе пользователь вводит буквенные оценки. Внутри заголовка while
while ( ( grade = cin.get() ) != EOF )
сначала выполняется присваивание, заключенное в скобки. Функция cin.get() читает один символ, введенный с клавиатуры, и сохраняет его в целой переменной grade . Использованная в cin.get() нотация с точкой будет объяснена в главе 6, «Классы». Обычно символы хранятся в переменной типа char. Однако важной особенностью С++ является то, что символы могут храниться в любом целом типе данных, поскольку они представляются в компьютере как однобайтовое целое. Таким образом, мы можем трактовать символ или как целое, или как символ в зависимости от его использования. Например, оператор
cout « "Символ (" « 'a' « ") имеет значение " « (int) 'a' « endl;
напечатает символ а и его целочисленное представление: Символ (а) имеет значение 97
Целое число 97 является численным отображением символа в компьютере. Многие компьютеры сегодня используют множество символов ASCII (American Standard Code for Information Interchange), в котором букве 'a' в нижнем регистре соответствует число 97. Список символов ASCII и их десятичных значений представлен в приложении В.
128
- 116 Глава 2
- 2.13. Основы повторения, управляемого счетчиком
- 2.14. Структура повторения for (цикл)
- 120 Глава 2
- 122 Глава 2
- 2.15. Пример использования структуры for
- 124 Глава 2
- 126 Глава 2
- 2.16. Структура множественного выбора switch
- Глава 2
- 130 Глава 2
- 132 Глава 2
- 2.17. Структура повторения do/while
- 134 Глава 2
- 2.18. Операторы break и continue
- Глава 2
- 2.19. Логические операции
- 138 Глава 2
- Глава 2
- 2.21. Заключение по структурному программированию
- IfcrpyKTypa (единственный выбор)
- Глава 2
- Глава 2
- 148 Глава 2
- Глава 2
- Глава 2
- Глава 2
- 156 Глава 2
- 158 Глава 2
- 160 Глава 2
- 2.1. А) следование, выбор и повторение, b) if/else. С) управляемым счет чиком или определенным заранее, d) Метку, сигнал, флаг или лож ный сигнал.
- 162 Глава 2
- 164 Глава 2
- 166 Глава 2
- 168 Глава 2
- 170 Глава 2
- 172 Глава 2
- 174 Глава 2
- 176 Глава 2
- 178 Глава 3
- Глава 3
- 3.3. Математические библиотечные функции
- 3.4. Функции
- Глава 3
- 3.5 Определения функций
- 184 Глава 3
- 186 ГлаваЗ
- 3.6. Прототипы функций
- 188 Глава 3
- 3.7. Заголовочные файлы
- 3.8. Генерация случайных чисел
- Глава 3
- 192 Глава 3
- 194 Глава 3
- 3.9. Пример: азартная игра
- Глава 3
- 198 Глава 3
- 3.10. Классы памяти
- 200 Глава 3
- 3.11. Правила, определяющие область действия
- 202 Глава 3
- 204 Глава 3
- 3.12 Рекурсия
- Глава 3
- 6) Значения, возвращаемые после каждого рекурсивного вызова
- 3.13. Пример использования рекурсии: последовательность чисел Фибоначчи
- Глава 3
- 3.14. Рекурсии или итерации
- 212 Глава 3
- Глава 3
- Глава 4
- Глава 5
- Глава 6
- 3.15. Функции с пустыми списками параметров
- 214 Глава 3
- 3.16. Встраиваемые функции