Подтвердить что ты не робот

Разница между + = и = +

Я потерял + = с = + один раз много раз, и я думаю, что продолжаю забывать, потому что я не знаю разницы между этими двумя, только тот дает мне ценность, которую я ожидаю, а другой не делает.

Почему это?

4b9b3361

Ответ 1

a += b является кратким для a = a + b (хотя обратите внимание, что выражение a будет оцениваться только один раз.)

a =+ b a = (+b), то есть присвоение унарного + от b до a.

Примеры:

int a = 15;
int b = -5;

a += b; // a is now 10
a =+ b; // a is now -5

Ответ 2

+= является составным оператором присваивания - он добавляет операнд RHS к существующему значению операнда LHS.

=+ - это просто оператор присваивания, за которым следует оператор унарного+. Он устанавливает значение операнда LHS в значение операнда RHS:

int x = 10;

x += 10; // x = x + 10; i.e. x = 20

x =+ 5; // Equivalent to x = +5, so x = 5.

Ответ 3

+= → Добавить правую сторону влево

=+ → Не используйте это. Установите левую сторону вправо.

Ответ 4

a += b равно a = a + b. a =+ b равно a = (+b).

Ответ 5

Это simple.x + = 1 равно x = x + 1, а x = + 1 сделает x значением одного (положительного)

Ответ 6

x += y 

совпадает с

x = x + y

и

x =+ y

неверен, но может быть интерпретирован как

x = 0 + y

Ответ 7

Потому что =+ не является оператором Java.

Ответ 8

Некоторая историческая перспектива: Java унаследовала += и аналогичные операторы из C. В очень ранних версиях C (середина 1970-х) у операторов составных присваиваний был "=" слева, поэтому

x =- 3;

был эквивалентен

x = x - 3;

(за исключением того, что x оценивается только один раз).

Это вызвало путаницу, потому что

x=-1;

уменьшал бы x вместо того, чтобы присваивать ему значение -1, поэтому синтаксис был изменен (избегая ужаса необходимости окружать операторы пробелами: x = -1;).

(Я использовал -= и =- в примерах, потому что ранний C не имел унарного оператора +.)

К счастью, Java был изобретен еще долго после того, как C сменился на текущий синтаксис, поэтому у него никогда не было этой конкретной проблемы.