Инкремент и декремент

Операции инкремента и декремента фото

Операции ++ и -- выполняют инкремент и декремент. Операция инкремента увеличивает значение операнда на единицу, а операция

декремента уменьшает значение операнда на единицу. Например, выражение

х = х + 1;

с операцией инкремента можно переписать так:

х++;

Аналогично следующее выражение:

х = х - 1;

равнозначно приведенному ниже выражению

х--;

Эти операции могут быть записаны в постфиксной форме, когда операция следует за операндом, а также в префиксной форме, когда операция предшествует операнду.

Рассмотрим разницу в использовании префиксного и постфиксного инкремента Java на следующем примере. Разница будет только тогда, когда инкремент используется в другой операции.

Например, при выполнении строки int b = a++; сначала значение из переменной а будет записано в переменную b и только потом произойдет инкремент (постфиксная форма означает после). Поэтому переменной b будет присвоено значение 1. Смотрим на следующую строку - int c = ++a; - в этом случае сначала выполнится инкремент (префиксная форма означает до), а уже потом новое значение из a будет записано в переменную с.

Когда инкремент не участвует в другой операции, например как в строке c++, не имеет значения напишите вы префиксную или постфиксную форму.

public class IncrementDecrement {
    public static void main(String[] args) {
        int a = 1;
        int b = a++;
        int c = ++a;
        c++;
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
    }
}

Результат выполнения программы:

a = 3
b = 1
c = 4

Над переменной типа char тоже можно производить операцию инкремента. При этом инкремент производится над кодом символа. Символы в таблице Unicode размещены по алфавиту, поэтому при выполнении операции инкремента над символьным значением, мы получаем следующий по алфавиту символ:

public class CharInc {
    public static void main(String[] args) {
        char ch = 'X';
        System.out.println("ch содержит " + ch);
        ch++; // увеличиваем ch
        System.out.println("Новое значение ch: " + ch);
    }
}

Результат выполнения кода:

ch содержит X
Новое значение ch: Y
Read also:
Comments