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

Содержание:

  1. Различить категории операторов

    • унарные, бинарные и условный оператор;
    • операнды и результат выражения;
    • статический тип результата;
    • оператор как часть выражения, а не самостоятельная команда.
  2. Использовать арифметические операторы

    • +, -, *, / и %;
    • унарные + и -;
    • математический смысл и машинный тип результата;
    • различие деления и остатка;
    • явные скобки для передачи требуемой структуры формулы.
  3. Строить отношения и логические выражения

    • ==, !=, <, <=, > и >=;
    • !, &&, || и логическое исключающее ^;
    • таблицы истинности;
    • законы де Моргана;
    • короткое замыкание && и ||;
    • безопасный порядок проверок в составном условии.
  4. Изменять состояние присваиванием

    • простое присваивание =;
    • составные присваивания +=, -=, *=, /=, %=;
    • префиксные и постфиксные ++, --;
    • различие возвращаемого значения и побочного эффекта;
    • цепочка состояний при нескольких изменениях.
  5. Работать с битовым представлением

    • &, |, ^, ~;
    • сдвиги << и >>;
    • маска, установка, очистка, переключение и проверка бита;
    • различие логических и битовых операторов;
    • влияние знакового типа на правый сдвиг.
  6. Обрабатывать возможный null в выражении

    • оператор объединения с null ??;
    • присваивание при null через ??=;
    • условный доступ к члену ?.;
    • результат условного доступа как nullable-значение;
    • различие проверки, подстановки значения и подавления предупреждения.
  7. Управлять структурой выражения

    • приоритет операторов;
    • ассоциативность;
    • порядок вычисления операндов;
    • скобки как явное описание намерения;
    • опасность нескольких побочных эффектов в одном выражении;
    • разбиение сложной формулы на именованные промежуточные значения.
  8. Использовать условное вычисление значения

    • условный оператор condition ? whenTrue : whenFalse;
    • общий тип двух ветвей;
    • вычисление только выбранного выражения;
    • отличие условного выражения от инструкции ветвления, изучаемой далее.