Инкремент и декремент

Инкремент и декремент

Инкремент – это операция в языках программирования, которая увеличивает переменную на единицу, если переменная числовая и возвращает следующий символ из таблицы символов, если переменная символьного типа. При этом переменная не должна принадлежать типу данных const (т.е. константе).

Операторы инкремента записывается как два плюса: ++

Существуют два вида инкрементов: преинкремент (или префиксный инкремент) и постинкремент (или постфиксный инкремент).
В синтаксисе префиксный инкремент ставится перед необходимой переменной, а постфиксный, соответственно, после.
Главное различие между ними, что при использовании операции преинкремента значение переменной сначала увеличивается на 1, а затем используется в выражении, к которому относится данная переменная. А при использовании операции постинкремента значение переменной сначала используется в выражении, а потом увеличивается на 1.
Более подробно и с примерами про это будет рассказано ниже.

Декремент – это подобная инкременту операция, с той лишь разницей, что она уменьшает числовую переменную на единицу, а для символьной переменной выбирает предшествующий ей символ из таблицы символов. Декремент также не работает с константным типом данных и также имеет два вида: предекремент (префиксный декремент) и постдекремент (постфиксный декремент).

Эти виды декрементов работают абсолютно так же, как и инкременты с той лишь разницей, что происходит уменьшение значения на единицу. Префиксный декремент уменьшает переменную до её использования в других выражениях, а постфиксный декремент, наоборот, уменьшает переменную только после того, как она будет использована в выражении.
Декремент записывается как два минуса: – – . В коде предекремент ставится перед переменной, а постдекремент – после.
Обе эти операции были созданы для удобства пользователей – для сокращения количества кода и для уменьшения времени его написания:

Ниже мы приведём примеры префиксных и постфиксных инкрементов и декрементов, для того, чтобы было легче понять разницу между ними. Также мы приведём синтаксис инкрементов и декрементов в языках C#, C, Java и C++.

Инкремент и декремент в C#

Создадим пример, где покажем различие между префиксными и постфиксными инкрементами.

В этом примере мы создали переменную x, равную 10. Затем мы выводим постинкремент этого x на консоль, а также выводим выражение, где x умножается на 2. Запустим программу и посмотрим на результат:

vscode.ru - Инкремент и декремент

Итак, сначала нам вывелся исходный x без прибавления к нему единицы. Почему так? Мы уже говорили, что при постинкременте значение переменной сначала будет использоваться в выражении, где необходима эта переменная, а только потом увеличится на 1. Данным «выражением» стал как раз метод Console.WriteLine, который вывел нашу переменную. После этого инкремент сработал, x увеличился на единицу, а затем сработал второй метод вывода, где x увеличивался в два раза. Именно поэтому во второй строке у нас получилось 22.
Теперь давайте поменяем инкремент на префиксный и посмотрим, что изменится.

Результат такой:

vscode.ru - Инкремент и декремент

Как уже можно понять, значение переменной x сразу же увеличилось на 1, поэтому при выводе в первой строке у нас получилось 11, а не 10. Вторая строка не изменилась, так как в любом случае мы умножаем 11 на 2.

С декрементами всё обстоит точно так же:

Программа с постдекрементом

Программа с постдекрементом

Программа с предекрементом

Программа с предекрементом

Скачать исходник описанных выше кодов вы сможете по следующей ссылке:

Скачать исходник

 

 

Ниже мы приведём листинги тех же примеров на других языках программирования. Соответственно, результаты будут такие же, как и в описанных выше программах.


Инкремент и декремент в C

Постинкремент в С

Преинкремент в С

Постдекремент в С

Предекремент в С


Инкремент и декремент в Java

Постинкремент в Java

Преинкремент в Java

Постдекремент в Java

Предекремент в Java


Инкремент и декремент в С++

Постинкремент в С++

Преинкремент в С++

Постдекремент в С++

Предекремент в С++

Спасибо за прочтение!

 

Инкремент и декремент
5 (100%) 7 votes

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">