Why does array[idx++] += "a" increment idx once in Java 8 and twice in Java 9+?
Hi everyone! I encountered a strange behavior in Java when using compound assignment operator with postfix increment on an array.
I have a simple code:
```java
public class Test {
public static void main(String[] args) {
String[] array = {"x", "y", "z"};
int idx = 0;
array[idx++] += "a";
System.out.println("idx = " + idx);
System.out.println("array[0] = " + array[0]);
System.out.println("array[1] = " + array[1]);
}
}
```
In Java 8 this code outputs:
```
idx = 1
array[0] = xa
array[1] = y
```
That is, idx is incremented once, and the string "a" is appended to array[0].
But in Java 9 and 10 I get:
```
idx = 2
array[0] = x
array[1] = ya
```
That is, idx is incremented twice, and "a" is appended to array[1].
No answers yet.
Log in to leave an answer
Blogs