int i=9;
System.out.println(--i + ++i);
вывод при выполнении: 17
Конечное значение i: 9
Но в соответствии с правилами ассоциативности и приоритета в java сначала нужно выполнить ++ i, т.е. справа налево, что дает 10, а затем --i дает 9 .. добавляя оба, ответ должен быть 19 ... Насколько Я знал, что такой код дает неопределенное поведение в C / C ++, но в java правила строго определены и нет концепции точек последовательности. Итак, может ли кто-нибудь прояснить проблему, поскольку я действительно смущен этим? Также в некоторых книгах упоминалось, что операторы пост-инкремента и пост-декремента являются ассоциативными LTR. Но в некоторых других книгах все приращения и убывания (как после, так и до) являются ассоциативными RTL .. !! Может ли кто-нибудь дать правильную таблицу приоритетов операторов и ассоциативности для java?