a = (a ++) * (a ++) дает странные результаты в Java [закрыто]

Я готовлюсь к экзамену OCPJP, поэтому я должен понимать каждую странную деталь Java. Это включает в себя порядок, в котором операторы пре- и пост-инкремента применяются к переменным. Следующий код дает мне странные результаты:

int a = 3;

a = (a++) * (a++);

System.out.println(a); // 12

Разве ответ не должен быть 11? А может 13? Но не 12!

ПОСЛЕДУЮЩИЕ ДЕЙСТВИЯ:

Что дает следующий код?

int a = 3;

a += (a++) * (a++);

System.out.println(a);
45
задан CodesInChaos 8 November 2011 в 11:12
поделиться