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