Increment & Decrement Operators
Tags: beginners, tutorial, cpp, devops
Published: 2023-03-08 18:16:01

Assalamu aleykum xurmatli dasturchi bugun siz bilan C++ dasturlash tilida ko'p xollarda ishlatiladigon operators xaqida gaplashib o'tamiz.

C++ dasturda matematik va mantiqiy bayonotlar va ifodalarni hisoblash uchun har xil turdagi Operatorlarni taqdim etadi. O'sish operatori va kamaytirish operatori C++ tilidagi birlik operatorlarning bir turi bo'lib, ular mos ravishda operandga 1 qiymatini qo'shish yoki ayirish uchun ishlatiladi. Ushbu maqola ushbu 2 Unary operatorlarining chuqur kontseptsiyasiga qaratilgan va tushuntirishga harakat qiladi.

**Ta'rif**

- O'sish operatori operand qiymatini 1 ga oshirish uchun ishlatiladi, pasaytirish operatori esa operand qiymatini 1 ga kamaytirish uchun ishlatiladi.

- C++ da o'zgaruvchining qiymati Increment operatori va Decrement operatori yordamida 1 ga oshiriladi yoki kamayadi.

`O'stirish va kamaytirish operatorlari faqat butun sonli o'zgaruvchilar va sonli qiymatlarga ega operandlar bilan qo'llaniladi. Ularni Belgi yoki satr qiymatlarini o'z ichiga olgan o'zgaruvchi bilan ishlatib bo'lmaydi.`

O'stirish operatori va kamaytirish operatori operandning Prefiks va Postfiks pozitsiyasida ishlatilishi mumkin. O'stirish/kamaytirish operatori tomonidan dastur bayonotida foydalaniladigan Lavozim operator qanday ishlashini hal qiladi.


Postfix operatori pozitsiyasi Prefiks operatori pozitsiyasidan yuqoriroq ustunlik darajasiga ega. Postfiks operatorlari chapdan o'ngga assotsiativlikdan baholanadi va prefiks operatorlari o'ngdan chapga assotsiativlikdan baholanadi.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dlxzp0weh87frw3shfjz.png)


**Increment Operator**

`O'sish operatorlarining asosiy vazifasi o'zgaruvchining sonli sonini 1 qiymatiga oshirishdan iborat. Dasturlash tilida O'sish operatorlari ‘++’ belgisi bilan belgilanadi.`


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qlj4ds4z6z8mr7y3wigq.png)

**Eslatma 1**

Prefiks va Postfix Increment operatorlari pozitsiyalari bir xil funktsional qiymatlarga ega va agar ular hech qanday ifoda formatida ishlatilmasa, bir xil natijalarni beradi.

```
#include <iostream>
using namespace std;

int main()

{

int x = 15 ; int y = 30 ;

++x ;

y++ ;

cout << x << endl << y ;


return 0;
}
```

**Output**

```
16

31
```

**Eslatma 2**

Prefiks va Postfiks pozitsiyalari, agar ular ifodada ishlatilsa, turli xil hisoblash natijalarini beradi

Agar o'sish operatorlari Prefiks pozitsiyasida ishlatilsa, u holda O'sish funktsiyasi ifodadan oldin bajariladi.

Agar o'sish operatorlari Postfix pozitsiyasida ishlatilayotgan bo'lsa, unda O'sish funktsiyasi ifodani baholashdan keyin amalga oshiriladi.

**Misol uchun:**

```
#include <iostream>
using namespace std;

int main()

{

int x =  10 ;

int a ;

x = ++x ;

cout <<"Value of x = "<< x << endl ;

a = x++ ;

cout <<"Value of a = "<< a << endl ;

cout <<"New Value of x = "<< x << endl ;

return 0;

}
```

**Natija:**

```
Value of x = 11

Value of a = 11

New value of x = 12
```

**Tushuntirish**


`Birinchi "cout" iboramizda Pre-Increment operatori ishlatiladi. Shunday qilib, "x" qiymati 1 ga oshiriladi, ya'ni x = x + 1 = 10 + 1 = 11`


`Keyin ‘a = x++’ ifodasidagi ‘a’ o‘zgaruvchisiga qiymat beramiz.`

`Bu shuni anglatadiki, avval "x" qiymati "a" ga tayinlanadi, keyin esa "x" 1 ga oshiriladi. Demak, a = 11 chiqdi, x = 12 ning yangi qiymati`

**Decrement Operator**

Kamaytirish operatorining asosiy vazifasi o'zgaruvchining sonli sonini 1 qiymatiga kamaytirishdan iborat. Dasturlash tilida kamaytirish operatori “– –” belgisi bilan belgilanadi.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13zlg3wn7k3tyqmj7q78.png)

**Eslatma 1**

Prefiks va Postfix Decrement operator pozitsiyalari bir xil funktsional qiymatlarga ega va agar ular hech qanday ifoda formatida ishlatilmasa, bir xil natijalarni beradi.

**Misol uchun:**

```
#include <iostream>
using namespace std;

                    
int main()

{

int x = 15 ; int y = 30 ;

-- x ;

y --;

cout << x << endl << y ;

return 0;
}
```

**Output:**

```
14

29

```

**Eslatma 2**

O'stirish operatorlari kabi, kamaytirish operatori ham har qanday iborada operator ishlatilsa, boshqacha ishlaydi.

Agar dekrement operatori Prefiks pozitsiyasida ishlatilayotgan bo'lsa, u holda Increment funktsiyasi ifodadan oldin bajariladi.

Agar pasaytirish operatori Postfix pozitsiyasida ishlatilayotgan bo'lsa, u holda Increment funktsiyasi ifodani baholashdan keyin amalga oshiriladi.

```
#include <iostream>
using namespace std;

int main()

{

int x =  10 ;

int a ;

cout <<"Value of x = "<< -- x << endl ;

a = x --;

cout <<"Value of a = "<< a << endl ;

cout <<"New Value of x = "<< x << endl ;

return 0;

}


```

**Output:**

```
Value of x = 9

Value of a = 9

New value of x = 8
```

**Tushuntirish**

`Birinchi "cout" bayonotimizda Pre-Decrement operatori ishlatiladi. Shunday qilib, "x" qiymati 1 ga kamayadi, ya'ni x = x - 1 = 10 - 1 = 9`

`Keyin ‘a = x — —’ ifodasidagi “a” o‘zgaruvchisiga qiymat beramiz.`

`Bu shuni anglatadiki, avval "x" qiymati "a" ga tayinlanadi, keyin esa "x" 1 ga kamayadi. Demak, a = 9 chiqish, x = 8 ning yangi qiymati`.