Порядок работы в JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Порядок работы в Java

Сообщение Anonymous »

Мне сложно отследить и понять, как Java (и Javascript) обрабатывает следующий код:

Код: Выделить всё

// Java
int   i = 0;
int[] a = {10, 20, 30, 40, 50, 60};

a[++i] = a[i++] = a[++i] = ++i;
System.out.println(Arrays.toString(a));
// [10, 4, 30, 4, 50, 60]

Код: Выделить всё

let   i = 0;
const a = [10, 20, 30, 40, 50, 60];

a[++i] = a[i++] = a[++i] = ++i;
console.log( JSON.stringify(a));  // [10, 4, 30, 4, 50, 60]


При запуске выводятся значения [10, 4, 30, 4, 50, 60].
Можно даже упростить этот пример:

Код: Выделить всё

int   i = 0;
int[] a = {10, 20};

a[i] = ++i;
System.out.println(Arrays.toString(a));
// [1, 20]

Код: Выделить всё

let   i = 0;
const a = [10, 20];

a[i] = ++i;
console.log( JSON.stringify(a) );  // [1, 20]


Я ожидал, что это выведет [10, 1], потому что сначала правая сторона. Но результат — [1, 20], но как?

Подробнее здесь: https://stackoverflow.com/questions/793 ... on-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»