Java – Order of Operations – Using Two Assignment Operators in a Single Line
= is parsed as right-associative, but order of evaluation is left-to-right. So: The statement is parsed as a[i] = (i = 9). However, the expression i in a[i] is evaluated before the right hand side (i = 9), when i is still 0. It’s the equivalent of something like: int[] #0 = a; int #1 … Read more