Разница между префиксом и постфиксом операнда?

Я считаю, что этот вопрос отличается, потому что другой вопрос заключался в том, как увеличивались числа внутри println(). Принятый ответ на другой вопрос не объяснял, что постфикс увеличивает значение после его печати.

Я читал Большой индекс и понимаю, как и когда использовать постфиксы, но понятия не имел, что префиксы существуют. Что это значит, когда говорится, что 6 печатается дважды в этом коде? Я думал, что это добавило к целому числу.

class PrePostDemo {
    public static void main(String[] args){
        int i = 3;
        i++;
        // prints 4
        System.out.println(i);
        ++i;               
        // prints 5
        System.out.println(i);
        // prints 6
        System.out.println(++i);
        // prints 6
        System.out.println(i++);
        // prints 7
        System.out.println(i);
    }
}

Почему бы ему не напечатать 4, 5, 6, 7, 8?


person Cyber Storm    schedule 10.02.2014    source источник
comment
Я полагаю, что мой вопрос может быть несколько другим, так как я понимаю, что вы можете увеличить int внутри println()   -  person Cyber Storm    schedule 10.02.2014
comment
Но чего я не понимаю, так это почему говорится, что 6 печатается дважды.   -  person Cyber Storm    schedule 10.02.2014
comment
Это неправда, вы можете использовать префиксные и постфиксные операторы где угодно.   -  person Anid Monsur    schedule 10.02.2014
comment
Очевидно, вы можете ... Я имел в виду связанный с этим вопрос.   -  person Cyber Storm    schedule 10.02.2014
comment
Это другое, потому что я уже понимаю эту концепцию, я просто не понимал, почему 7 не печаталось при увеличении 6, но на это был дан ответ.   -  person Cyber Storm    schedule 10.02.2014


Ответы (1)


Префикс будет выполнять сложение/вычитание перед выполнением текущего оператора кода. Postfix выполнит это позже.

person Anid Monsur    schedule 10.02.2014
comment
Хорошо, это имеет больше смысла. Спасибо. - person Cyber Storm; 10.02.2014