Ko'pgina yangi boshlanuvchilar o'sish va kamaytirish nima ekanligini bilishmaydi, lekin biz hamma "
i++
, ++i
, i--
yoki --i
" dan foydalanishni tsiklda ko'rganiga aminmiz for
. Shunday qilib, bir oz tushuntirish.
O'sish nima?
O'sish - bu ko'plab dasturlash tillarida o'zgaruvchini oshiradigan operatsiya. Ko'pincha, o'sish o'zgaruvchining 1 birlikka ko'payishini anglatadi. Teskari operatsiya dekrement deb ataladi. Dekrement - o'zgaruvchining kamayishi. Ko'pincha bittadan. Java-da oshirish va kamaytirish birinchi navbatda har qanday raqamli o'zgaruvchiga qo'llaniladigan unar operatorlardir. O'sish: ikkita ortiqcha belgisi bilan ko'rsatiladi "++
" va o'zgaruvchining qiymatini 1 ga oshiradi. Kamaytirish: ikkita minus " " belgisi bilan ko'rsatiladi --
va o'zgaruvchining qiymatini 1 ga kamaytiradi. Misol:
int x = 10, z = 10;
x++;
z--;
System.out.println("x: " + x + ", z: " + z);
Natijada x
, u ko'payadi va z
- kamayadi. Va konsolda biz ko'ramiz: x: 11
, z: 9
Aslida siz shunday yozishingiz mumkin:
int x = 10, z = 10;
x = x + 1;
z = z - 1;
System.out.println("x: " + x + ", z: " + z);
Ammo o'zgaruvchini faqat 1 ga oshirish yoki kamaytirish kerak bo'lsa, nima uchun keraksiz narsalarni yozish kerak? O'sish va kamaytirish nima ekanligini aniqlaganimiz yaxshi, lekin bu hammasi emas. O'sish va kamaytirish ikkita shaklga ega - prefiks va postfiks . Xudoyim, bu nima, deb o'yladingizmi?) Xavotir olmang: bu erda ham hamma narsa oson. Prefiks++x
yoki Prefiks shakli " yoki " o'zgaruvchidan oldin e'lon qilinadi --x
, dastlab o'zgaruvchini oshiradi yoki kamaytiradi. Postfixx++
yoki Postfix shakli " yoki " o'zgaruvchidan keyin e'lon qilinadi x--
, baholashdan keyin o'zgaruvchini oshiradi yoki kamaytiradi. Agar siz hisoblash so'ziga e'tibor bergan bo'lsangiz, buni yaxshi sababga ko'ra qildingiz, chunki hisob-kitoblarda ishlatilmasa, ikkala shakl ham bir xil ishlaydi. Mana hisob-kitoblarsiz misol:
int x = 10, z = 10;
x++;
++z;
System.out.println("x: " + x + ", z: " + z);
Natijada, ikkala o'zgaruvchi ham 11 ga teng bo'ladi. Va bu erda hisoblash bilan bir misol:
int x = 10, c = 10;
final int y = 13 - x++;
final int z = 13 - ++c;
System.out.println("y: " + y + ", z: " + z);
Ko'rib turganingizdek, " x
va c
" o'zgaruvchilari teng va tenglamalar o'xshash, LEKIN o'sish operatorini yozishning turli shakllari qo'llaniladi. Hisob-kitoblar natijasida y o'zgaruvchisi 3 bo'ladi, lekin z
u 2 bo'ladi. Nima uchun yuqorida yozilganlarga asoslanib, ehtimol siz allaqachon taxmin qilgandirsiz. Agar yo'q bo'lsa, keling, hamma narsani birgalikda "chaynaymiz". Postfiks shakli hisob-kitoblardan keyin ishlaydi, ya'ni tenglama quyidagicha ishlaydi:
x = 10;
// Начало уравнения.
y = 13 - x; // С начала производим вычисление (x все еще 10)
x += 1; // Производим увеличение на 1
// Конец уравнения.
Prefiks quyidagicha ishlaydi:
c = 10;
// Начало уравнения.
c += 1; // Производим увеличение на 1
z = 13 - c; // Производим вычисление (c уже 11)
// Конец уравнения.
Xo'sh, bu butun hikoya :) Umid qilamizki, bu siz uchun foydali va ma'lumotli bo'ldi. Java tilini o'zlashtirishda omad tilaymiz;) Java Multithreading kvestida Javarush kursida Java tilida oshirish, kamaytirish va boshqa operatorlardan foydalanishni o'rganishingiz va mashq qilishingiz mumkin:
GO TO FULL VERSION