Результат: ученик объявляет enum для конечного набора предметных состояний, безопасно использует именованные значения и учитывает возможность существования неименованного числового значения.

Содержание:

  1. Распознать задачу с конечным набором состояний

    • режим, статус, категория и команда;
    • замена несвязанных числовых кодов именованным типом;
    • повышение читаемости условий и отчётов;
    • отделение предметного состояния от произвольного целого числа.
  2. Объявить перечисление

    • ключевое слово enum;
    • имя типа и имена членов в PascalCase;
    • автоматическая нумерация;
    • явное назначение числовых значений;
    • выбор базового целочисленного типа при обоснованной необходимости.
  3. Создавать и сравнивать значения enum

    • объявление переменной перечисления;
    • доступ к члену через имя типа;
    • операторы равенства и неравенства;
    • присваивание и передача значения;
    • использование перечисления в ветвлении.
  4. Понять числовую основу перечисления

    • явное преобразование к базовому целому типу;
    • явное преобразование целого к enum;
    • возможность получить значение без именованного члена;
    • значение по умолчанию с числовым кодом 0;
    • необходимость предусматривать неизвестное состояние.
  5. Проектировать устойчивую нумерацию

    • явные коды при зависимости внешнего формата от числа;
    • отказ от случайной зависимости логики от порядка объявления;
    • сохранение совместимости машинных данных;
    • различие внутренней категории и внешнего текстового представления.
  6. Проверять полноту модели

    • перечень допустимых именованных состояний;
    • поведение при неименованном значении;
    • значение по умолчанию;
    • таблица состояния и допустимых переходов перед построением ветвлений.