Menu
Coddy logo textTech

Постфиксный инкремент и декремент

Часть раздела Основы путешествия по C++ на Coddy. Урок 19 из 74.

На предыдущем уроке мы рассмотрели операторы инкремента (++) и декремента (--). У этих операторов есть две формы: prefix и postfix.

Форма prefix записывается перед переменной (например, ++x или --x), а форма postfix — после переменной (например, x++ или x--).

Знание того, какую форму использовать, важно на практике. Например, в игре вы можете отслеживать счёт игрока с помощью score++ после каждого попадания или использовать --lives, чтобы немедленно отразить потерю жизни перед проверкой окончания игры. В циклах выбор между prefix и postfix может влиять на то, какое значение используется в выражении до или после обновления.

Разница между двумя формами незначительна, но важна:

  • Форма prefix: увеличивает/уменьшает переменную, а затем возвращает новое значение.
  • Форма postfix: возвращает текущее значение переменной, а затем увеличивает/уменьшает её.

Вот пример, иллюстрирующий разницу:

int x = 5;
int y = x++;
// y = 5, x = 6 (постфикс: y получает исходное значение, затем x увеличивается)

int a = 5;
int b = ++a;
// b = 6, a = 6 (префикс: a сначала увеличивается, затем b получает новое значение)

В first случае y присваивается original значение x (5), а затем x становится incremented до 6. Во втором случае a становится incremented first, а затем его новое значение (6) присваивается b.

Та же логика применяется к оператору декремента:

int x = 5;
int y = x--;
// y = 5, x = 4 (постфикс: y получает исходное значение, затем x уменьшается)

int a = 5;
int b = --a;
// b = 4, a = 4 (префикс: сначала a уменьшается, затем b получает новое значение)
challenge icon

Задание

Новичок

Вам дан код с инициализациями x, y и z. (Не удаляйте эти строки!)

Ваша задача — использовать операторы инкремента/декремента, чтобы выполнить следующие операции в этом порядке:

  1. Используйте оператор postfix инкремента, чтобы присвоить текущее значение x переменной a, а затем увеличить x.
  2. Используйте оператор prefix декремента, чтобы уменьшить y и присвоить его новое значение переменной b.
  3. Используйте оператор postfix декремента, чтобы присвоить текущее значение z переменной c, а затем уменьшить z.

После выполнения этих операций выведите значения a, b, c, x, y и z в консоль в следующем формате:

a: [value of a]
b: [value of b]
c: [value of c]
x: [value of x]
y: [value of y]
z: [value of z]

Попробуйте сами

#include <iostream>

int main() {
    int x = 10;
    int y = 20;
    int z = 30;
    
    int a, b, c;
    
    // Введите свой код ниже
    
    
    // Не изменяйте строки ниже
    std::cout << "a: " << a << std::endl;
    std::cout << "b: " << b << std::endl;
    std::cout << "c: " << c << std::endl;
    std::cout << "x: " << x << std::endl;
    std::cout << "y: " << y << std::endl;
    std::cout << "z: " << z << std::endl;
    
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор C++