Префикс и постфикс в Java
Инкремент и декремент можно записать двумя
способами. Разберем их на примере ++,
для -- правила те же.
В первом способе операция записывается после
имени переменной: num++. Во втором -
перед именем: ++num.
Первая форма называется постфиксной, вторая - префиксной. Разница проявляется, когда операция стоит внутри другого выражения.
В записи System.out.println(num++)
переменная сначала участвует в выводе, а потом
увеличивается на единицу. В записи
System.out.println(++num) она сначала
увеличивается, а потом выводится:
int num = 0;
System.out.println(num++);
System.out.println(num);
int num = 0;
System.out.println(++num);
Такое поведение относится не только к выводу, но и к присваиванию:
int num1 = 0;
int num2 = num1++;
System.out.println(num2);
System.out.println(num1);
int num1 = 0;
int num2 = ++num1;
System.out.println(num2);
Если операция выполняется отдельной командой, разницы между префиксной и постфиксной формами нет:
int num = 0;
++num;
num++;
System.out.println(num);
Не запуская код, определите, что выведется на экран:
int num = 3;
System.out.println(++num);
Не запуская код, определите, что выведется на экран:
int num = 3;
System.out.println(num++);
Не запуская код, определите, что выведется на экран:
int num1 = 3;
int num2 = ++num1;
System.out.println(num1);
System.out.println(num2);
Не запуская код, определите, что выведется на экран:
int num1 = 3;
int num2 = num1++;
System.out.println(num1);
System.out.println(num2);