Menu
Coddy logo textTech

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задание

Новичок

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

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

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

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

a: [значение a]
b: [значение b]
c: [значение c]
x: [значение x]
y: [значение y]
z: [значение 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Проверьте себя

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

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