Операции инкремента и декремента




Инкремент ++ – это увеличение на единицу.

Декремент -- – это уменьшение на единицу.

Операции декремента и инкремента с лёгкостью заменяются арифметическими операциями или операциями присваивания. Но использовать операции инкремента и декремента намного удобнее.

  //синтаксис операций инкремента и декремента ++/*имя переменной*/; // префиксный инкремент (преинкремент) /*имя переменной*/++; // постфиксный инкремент (постинкремент) --/*имя переменной*/; // префиксный декремент (предекремент) /*имя переменной*/--; // постфиксный декремент (постдекремент)

Синтаксис использования операций инкремента и декремента таков, что перед или после имени переменной ставится операция инкремента или декремента. Когда операция инкремента или декремента ставится перед именем переменной, то такая операция называется префиксным инкрементом (сокращённо — преинкрементом) или префиксным декрементом (сокращённо — предекрементом). А если операция инкремента или декремента ставится после имени переменной, то такая операция называется операцией постфиксного инкремента (сокращённо — постинкремент) или постфиксного декремента (сокращённо — постдекремент). При использовании операции преинкремента значение переменной, сначала, увеличивается на 1, а затем используется в выражении. При использовании операции постинкремента значение переменной сначала используется в выражении, а потом увеличивается на 1. При использовании операции предекремента, значение переменной, сначала, уменьшается на 1, а затем используется в выражении. При использовании операции постдекремента, значение переменной, сначала, используется в выражении, а потом уменьшается на 1. В таблице 1 показаны примеры выражений с использованием операций инкремента и декремента, а также приведена их краткая характеристика.

Операции инкремента и декремента в С++
Операция Обозна-чение Пример Краткое пояснение
преинкремент ++ cout<< ++ value Значение в переменной value увеличивается, после чего, оператор cout печатает это значение
предекремент – – cout << ––value Значение в переменной value уменьшается, после чего, оператор cout печатает это значение
постинкремент ++ cout << value++ Оператор cout печатает значение переменной value, затем увеличивает это значение на 1
постдекремент – – cout << value–– Оператор cout печатает значение переменной value, затем уменьшает это значение на 1

В примерах используется оператор cout, чтобы показать, например, в чём различие постфиксных и префиксных операций. Вместо оператора cout можно использовать любой другой, в зависимости от того, какую необходимо выполнить задачу. Разработаем программу на основе выражений из таблицы, которая наглядно покажет, как себя будут вести операции инкремента и декремента.

 

 

Код программы простой, поэтому пояснений к нему не будет, тем более, что в комментариях всё расписано. Результат работы программы (см. Рисунок 1).

 

value = 2011

++value = 2012

value++ = 2012

value = 2013

--value = 2012

value-- = 2012

value = 2011

Для продолжения нажмите любую клавишу...

Рисунок 1 — Операции инкремента и декремента

Из рисунка 1 видно, что первым делом печатается значение переменной value и оно равно 2011. Далее выполняется операции преинкремента, которая, в свою очередь, увеличивает на 1 значение переменной value, теперь в value содержится значение 2012. В строке 11 выполняется операция постинкремента, таким образом, сначала печатается старое значение переменной value – 2012, а потом значение в value увеличивается на 1. Оператор cout в строке 12 как раз подтверждает изменение значения в переменной value, оно равно 2013. В строке 13 выполняется операции предекремента, а значит, значение в переменной value уменьшается на 1, и оператор cout печатает это значение, теперь value = 2012. В строке 14 выполняется операция постдекремента, но сначала оператор cout печатает значение value, затем операция постдекремента уменьшает значение в переменной value. Теперьvalue = 2011, это подтверждает оператор cout в строке 15.

Как было выше сказано, операции инкремента и декремента можно заменить эквивалентными операциями, например:

  /*операция*/ ++value; /*эквивалентна операции*/ value += 1; /*операция*/ --value; /*эквивалентна операции*/ value -= 1; /*операция*/ ++value; /*эквивалентна операции*/ value = value +1; /*операция*/ --value; /*эквивалентна операции*/ value = value - 1;

Но зачем всё усложнять, если можно использовать операции инкремента и декремента, вместо операций присваивания. С точки зрения оформления программного кода, так даже будет правильнее.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: