
Autor: 13.12.2023
Java - inkrementacja i dekrementacja
Inkrementacja oraz dekrementacja to relatywnie proste operacje. Warto jednak zwrócić uwagę na pewne detale, aby uniknać w przyszłości problemów. W tym artykule objaśnimy najważniejsze zagadnienia dotyczące inkrementacji oraz dekrementacji w języku Java.
Inkrementacja oraz dekrementacja
Technika znana jako inkrementacja to nic innego jak zwiększanie wartości zmiennej o 1. Popatrz na prosty przykład:
int a = 1;
a = a + 1;
a += 1;
Można to też zapisać w skróconej formie:
a++;
Dekrementacja to po prostu zmniejszenie wartości zmiennej o 1:
int a = 1;
a = a - 1;
a -= 1
Można to też zapisać w skróconej formie:
a--;
Pre i post inkrementacja/dekrementacja
Wiesz już co to takiego dekrementacja i inkrementacja. Każda z tych operacji może być pre lub post. Co oznaczają te tajemnicze słowa?
W inkrementacji i dekrementacji słowo pre oznacza, że znaki ++ lub -- znajdują się przed zmienną.
Preinkrementacja i predekrementacja:
int a = 0;
++a;
--a;
Z kolei słowo post oznacza, że znaki ++ lub -- znajdują się po zmiennej:
int a = 0;
a++;
a--;
Z pre i post inkrementacją / dekrementacją związane są pewne zawiłości. Spójrz na poniższy przykład. On wiele Ci wyjaśni:
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 10;
int c = 10;
int d = 10;
System.out.println(a++);
System.out.println(++b);
System.out.println();
System.out.println(c--);
System.out.println(--d);
}
}
Rezultat:
10
11
10
9
Co tutaj się wydarzyło? Musisz sobie uzmysłowić, że postinkrementacja (a++) wykona się później. W pierwszej kolejności funkcja println() wyświetli wartość a, a dopiero później jej wartość zostanie zwiększona o 1.
Sytuacja odwrotna ma miejsce podczas preinkrementacji (++a). Preinkrementacja wykona się wcześniej. W pierwszej kolejności zostanie zwiększona wartość zmiennej o 1, a następnie funkcja println() wyprowadzi wartość naszej zmiennej na wyjście.
Sytuacja jest analogiczna dla pre i post dekrementacji!