Постфиксный инкремент и декремент
Часть раздела Основы путешествия по 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 получает новое значение)Задание
НовичокВам дан код с инициализациями x, y и z. (Не удаляйте эти строки!)
Ваша задача — использовать операторы инкремента/декремента, чтобы выполнить следующие операции в этом порядке:
- Используйте оператор postfix инкремента, чтобы присвоить текущее значение
xпеременнойa, а затем увеличитьx. - Используйте оператор prefix декремента, чтобы уменьшить
yи присвоить его новое значение переменнойb. - Используйте оператор 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;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - elseПотренируйтесь самостоятельно: Онлайн-компилятор C++