198 Глава 3
Другой популярный пример перечислимого типа:
enum Months {JAN = 1, FEB, MAR, APR, MAY, YUN, JUL, AUG, SEP, ОСТ, NOV, DEC};
Это объявление создает определенный пользователем тип Months с константами перечисления, представляющими месяцы года. Поскольку первое значение приведенного перечисления установлено равным 1, оставшиеся значения увеличиваются на 1 от 1 до 12. В объявлении перечислимого типа любой константе перечисления можно присвоить целое значение.
Типичная ошибка программирования 3.14
После того, как константа перечисления определена, попытка присвоить ей другое значение является синтаксической ошибкой.
Хороший стиль программирования 3.9
Используйте в именах констант перечисления только заглавные буквы. Это выделяет константы в тексте программы и напоминает программисту о том, что константы перечисления не являются переменными.
Хороший стиль программирования 3.10
Использование перечислений вместо целых констант облегчает чтение программы.
После первого бросания, если игра выиграна, структура while пропускается, поскольку gameStatus не равна CONTINUE. Программа передает управление в структуру if/else, которая печатает «Игрок выиграл», если gameStatus равна WON, и «Игрок проиграл», если gameStatus равна LOST.
После первого бросания, если игра не окончена, sum сохраняется в my-Point. Управление передается структуре while, потому что gameStatus равна CONTINUE. При каждом выполнении while вызывается rollDice для вычисления нового значения переменной sum. Если sum совпадает с myPoint, gameStatus устанавливается равной WON, проверка while терпит неудачу, структура if/else печатает «Игрок выиграл» и выполнение завершается. Если sum равна 7, gameStatus устанавливается в LOST, проверка while терпит неудачу, структура if/else печатает «Игрок проиграл» и выполнение завершается.
Обратите внимание на интересные применения различных механизмов управления вычислениями, которые мы обсудили. Программа «крепс» использует две функции — main и rollDice, структуры switch, while, if/else и вложенную структуру if. В упражнениях мы исследуем различные интересные характеристики игры крепс.
- 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. Встраиваемые функции