Əvvəlcədən bir artım və sonrakı azalma arasındakı fərq nədir?


cavab 1:

Bir artım (++) və ya azalma (- -) əməliyyatının olub-olmamasından asılı olmayaraq, əvvəl və ya post üçün fərq əməliyyatın ifadənin qiymətləndirilməsindən əvvəl və ya sonra baş verməsindən ibarətdir. Adından da göründüyü kimi, əvvəlcədən artım ifadənin qiymətləndirilməsindən əvvəl dəyərin artırıldığını və azalma sonrası ifadənin qiymətləndirilməsindən sonra dəyərin azaldığını bildirir.

Sadə bir misal:

int a = 5; int b = ++ a; // həm a, həm də b eyni qiymətə malikdir 6. int c = 5; int d = c--; // c 4 olacaq və 5 də olacaq

Daha dərindən başa düşmək üçün aşağıdakı kimi mürəkkəb ifadələrə sahib ola bilərik.

int a = 5; int b = a ++ + --a; // a = 5, b = 10 a = 5; b = a + ++ a; // a = 6, b = 11 a = 5; b = ++ a + a; // a = 6, b = 12

Yuxarıda cavab verə bilsəniz, bu unary operatorları yaxşı başa düşdüyünüz güman edilir. Son ifadə üçün bir nümunə götürək, b = ++ a + a. Əlavə əməliyyatı əvvəlcə sol operandın, sonra ikinci operandın dəyərini hesablayır. Birinci operandın dəyəri 6-dır (a nöqtəsi bu nöqtədə 6-ya bərabərdir), ikinci operandın dəyəri də 6-dır (çünki bu nöqtədə a dəyəri 6-dır). Əlavə b-də saxlanılan 12-dir.

Ümid edirəm sualınıza cavab verir.


cavab 2:

Sual bir qədər qeyri-müəyyəndir. Əvvəlki və post arasındakı fərq və artım və azalma arasındakı fərq var. Əslində 4 operator var: əvvəlcədən böyüdülmə, sonradan artırılması, əvvəlcədən azaldılması və sonradan azalma. Artım dəyəri 1 artırır, azalma onu birə azaldır. Əvvəlki və post arasındakı fərq geri qaytarılan dəyərdir. Əvvəlki əməliyyatlarda əməliyyat yerinə yetirilir və sonra dəyərini qaytarır. sonradan geri qaytarılmış dəyər əməliyyatdan əvvəl dəyərdir. Məsələn, bu kodu götürün;

x = 3; // x 3 dəyərinə malikdir

y = ++ x; // x 4-ə artırılır və 4-ə 4 dəyəri verilir

x = 3; // yenidən x 3 var

y = x ++; 3 dəyəri saxlanılır. x 4-ə artırılır. y təyin olunmuş dəyər 3 təyin olunur