---
description: >-
  что такое инкремент и декремент, а так же как применять его постфиксную и
  префиксную формы.
---

# Инкремент и Декремент

Инкремент и Декремент используют для увеличения или уменьшения переменной на 1.

{% hint style="info" %}
<mark style="color:blue;">**Инкремент**</mark> - Увеличивает переменную на 1.                                                                       &#x20;

<mark style="color:blue;">**Декремент**</mark> - Уменьшает переменную на 1.&#x20;
{% endhint %}

Эти операции можно писать как _<mark style="color:green;">**перед**</mark>_ переменной так и _<mark style="color:red;">**после**</mark>_. Это называется _<mark style="color:green;">**префикс**</mark>_ и _<mark style="color:red;">**постфикс**</mark>_.

{% hint style="info" %}
<mark style="color:blue;">**Префикс**</mark> - Сразу увеличивает или уменьшает переменную и выводит результат. `++a`\
<mark style="color:blue;">**Постфикс**</mark> - Выводит значение переменной, а потом увеличивает или уменьшает ее. `a++`
{% endhint %}



<table><thead><tr><th width="158">Операция</th><th width="184">Обозначение </th><th width="164">Пример</th><th>Пояснение</th></tr></thead><tbody><tr><td>ПреИнкремент</td><td><code>++a</code></td><td>cout &#x3C;&#x3C; <mark style="color:red;"><strong>++value</strong></mark>;</td><td>Значение в переменной <code>value</code> увеличивается, после чего оператор <code>cout</code> печатает это значение</td></tr><tr><td>ПреДекремент</td><td><code>--a</code></td><td>cout &#x3C;&#x3C; <mark style="color:red;"><strong>--value</strong></mark>;</td><td>Значение в переменной <code>value</code> уменьшается, после чего оператор <code>cout</code> печатает это значение</td></tr></tbody></table>

<table><thead><tr><th width="166">Операция</th><th width="177">Обозначение </th><th width="158">Пример</th><th>Пояснение</th></tr></thead><tbody><tr><td>ПостИнкремент</td><td><code>a++</code></td><td>cout &#x3C;&#x3C; <mark style="color:blue;"><strong>value++</strong></mark>;</td><td>Оператор <code>cout</code> печатает значение переменной <code>value</code>, затем увеличивает это значение на 1</td></tr><tr><td>ПостДекремент</td><td><code>a--</code></td><td>cout &#x3C;&#x3C; <mark style="color:blue;"><strong>value--</strong></mark>;</td><td>Оператор <code>cout</code> печатает значение переменной <code>value</code>, затем уменьшает это значение на 1</td></tr></tbody></table>

```cpp
int value = 1;
    cout << "value   = " << value   << endl; // начальное значение
    
    cout << "++value = " << ++value << endl; // преинкремент
    cout << "value++ = " << value++ << endl; // постинкремент
  
    cout << "--value = " << --value << endl; // операция предекремента
    cout << "value-- = " << value-- << endl; // операция постдекремента
```
