JavaRush /Блоги Java /Random-TG /Зиёдкунанда ва камшавӣ чист
L2CCCP
Сатҳи

Зиёдкунанда ва камшавӣ чист

Дар гурӯҳ нашр шудааст
Бисёр шурӯъкунандагон намедонанд, ки афзоиш ва коҳиш чист, аммо мо боварӣ дорем, ки ҳама истифодаи " i++, ++i, i--ё --i"-ро дар як давр дидаанд for. Пас, каме тавзеҳот. Зиёдкунанда ва камшаванда чист - 1

Афзоиш чист?

Афзоиш ин амалиёт дар бисёр забонҳои барномасозӣ мебошад, ки тағирёбандаро афзоиш медиҳад. Аксар вақт, афзоиш маънои афзоиши тағирёбанда ба 1 воҳидро дорад. Амалиёти баръакс коҳиш номида мешавад. Камшавӣ камшавии тағирёбанда аст. Аксар вақт низ аз ҷониби як. Дар Java, афзоиш ва камшавӣ асосан операторҳои унарӣ мебошанд, ки ба ҳар як тағирёбандаи ададӣ татбиқ карда мешаванд. Афзоиш: бо ду аломати ҷамъи " ++" нишон дода мешавад ва арзиши тағирёбандаро то 1 зиёд мекунад. Камшавӣ: бо ду аломати минус " --" нишон дода мешавад ва арзиши тағирёбандаро то 1 кам мекунад. Мисол:
int x = 10, z = 10;
x++;
z--;

System.out.println("x: " + x + ", z: " + z);
Дар натиҷа x, он зиёд мешавад ва z- кам карда мешавад. Ва дар консол мо мебинем: x: 11, z: 9 Дар асл, шумо метавонед чунин нависед:
int x = 10, z = 10;
x = x + 1;
z = z - 1;

System.out.println("x: " + x + ", z: " + z);
Аммо чаро чизҳои нолозим менависем, агар мо тағирёбандаро танҳо 1 кам ё зиёд кунем? Хуб аст, ки мо фаҳмидем, ки афзоиш ва камшавӣ чист, аммо ин ҳама нест. Афзоиш ва камшавӣ ду шакл доранд - префикс ва постфикс . Худоё, ин чист, фикр кардед?) Парво накунед: дар ин ҷо ҳам ҳама чиз осон аст. Префикс ё шакли префикс пеш аз тағирёбандаи " ++xё --x" эълон карда мешавад, ки дар аввал тағирёбандаро афзоиш ё кам мекунад. Postfix ё шакли Postfix пас аз тағирёбандаи " x++ё x--" эълон карда мешавад, тағирёбандаро пас аз арзёбӣ афзоиш ё кам мекунад. Агар шумо ба калимаи ҳисоб аҳамият дода бошед, шумо ин корро бо сабаби узрнок кардаед, зеро ҳарду шакл якхела кор мекунанд, агар онҳо дар ҳисобҳо истифода нашаванд. Инак як мисол бе ҳисобҳо:
int x = 10, z = 10;
x++;
++z;

System.out.println("x: " + x + ", z: " + z);
Дар натиҷа, ҳарду тағирёбанда ба 11 баробар хоҳанд буд. Ва ин аст як мисол бо ҳисоб:
int x = 10, c = 10;
final int y = 13 - x++;
final int z = 13 - ++c;

System.out.println("y: " + y + ", z: " + z);
Тавре ки шумо мебинед, ҳарду тағирёбандаҳои " xва c" баробаранд ва муодилаҳо шабеҳанд, АММО шаклҳои гуногуни навиштани оператори афзоиш истифода мешаванд. Дар натиҷаи ҳисобҳо, тағирёбандаи y 3 хоҳад буд, аммо zон 2 хоҳад буд. Шумо шояд аллакай дар асоси он чизе, ки дар боло навишта шуда буд, тахмин кардаед. Агар не, биёед ҳама чизро якҷоя «ходан» кунем. Шакли postfix пас аз ҳисобҳо кор хоҳад кард, ки ин маънои онро дорад, ки муодила чунин кор хоҳад кард:
x = 10;

// Начало уравнения.
y = 13 - x; // С начала производим вычисление (x все еще 10)
x += 1; // Производим увеличение на 1
// Конец уравнения.
Префикс чунин кор хоҳад кард:
c = 10;

// Начало уравнения.
c += 1; // Производим увеличение на 1
z = 13 - c; // Производим вычисление (c уже 11)
// Конец уравнения.
Хуб, ин тамоми ҳикоя аст :) Мо умедворем, ки ин барои шумо муфид ва иттилоотӣ буд. Муваффақият дар азхудкунии Java;) Шумо метавонед дар курси Javarush дар ҷустуҷӯи Java Multithreading истифода бурдани операторҳои афзоиш, коҳиш ва дигар операторҳоро омӯзед ва машқ кунед:
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION