Menu
Coddy logo textTech

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

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

В предыдущем уроке мы изучили операторы инкремента (++) и декремента (--). Эти операторы имеют две формы: префиксную и постфиксную.

Знание того, какую форму использовать, важно в реальных программах — например, при отслеживании игрового счета, подсчете итераций цикла или перемещении по списку элементов.

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

Разница между этими двумя формами тонка, но важна:

  • Префиксная форма: увеличивает/уменьшает переменную, а затем возвращает новое значение.
  • Постфиксная форма: возвращает текущее значение переменной, а затем увеличивает/уменьшает её.

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

int x = 5;
int y = x++;
// y = 5, x = 6 (постфиксная форма)

int a = 5;
int b = ++a;
// b = 6, a = 6 (префиксная форма)

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

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

int x = 5;
int y = x--;
// y = 5, x = 4 (постфиксная форма)

int a = 5;
int b = --a;
// b = 4, a = 4 (префиксная форма)
challenge icon

Задание

Новичок

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

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

  1. Используйте оператор постфиксного инкремента, чтобы присвоить текущее значение x переменной a, а затем увеличьте x.
  2. Используйте оператор префиксного декремента, чтобы уменьшить y и присвоить его новое значение переменной b.
  3. Используйте оператор постфиксного декремента, чтобы присвоить текущее значение 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]

Шпаргалка

Операторы инкремента (++) и декремента (--) имеют две формы:

  • Префиксная форма (++x, --x): сначала увеличивает/уменьшает переменную, затем возвращает новое значение
  • Постфиксная форма (x++, x--): сначала возвращает текущее значение, затем увеличивает/уменьшает переменную

Примеры:

int x = 5;
int y = x++;  // y = 5, x = 6 (постфиксная форма)

int a = 5;
int b = ++a;  // b = 6, a = 6 (префиксная форма)

int x = 5;
int y = x--;  // y = 5, x = 4 (постфиксная форма)

int a = 5;
int b = --a;  // b = 4, a = 4 (префиксная форма)

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

#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Проверьте себя

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

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