Увеличение / уменьшение по сравнению с аддитивными / вычитающими операторами присваивания? - PullRequest
11 голосов
/ 07 мая 2011

Отказ от ответственности: я довольно новое программирование, поэтому этот вопрос может быть глупым.

В прошлом, когда бы я ни захотел увеличить или уменьшить целое число, я быиспользуйте integer++ или integer--.Однако после прочтения большего количества книг по программированию я обнаружил операторы += и -= (которые, как я выяснил в ходе дальнейших исследований, известны как операторы аддитивного и вычитающего присваивания).

Очевидно, что операторы присваиванияявляются наиболее надежными, поскольку вы можете варьировать величину, на которую хотите увеличить или уменьшить целое число.Что мне интересно, так это: Есть ли какие-либо преимущества или недостатки использования integer++ против integer += 1?

Ответы [ 3 ]

17 голосов
/ 07 мая 2011

integer ++ на самом деле делает немного больше, чем вы думаете.

'++' после того, как целое число сначала возвращает значение целого, а затем увеличивает целое:целое число do ++, которое сначала увеличивает целое число, а затем возвращает значение.

int i = 5;
int a = ++i;
//i and a are now 6.

Какой оператор лучше?Все сводится к личным предпочтениям.Свен указывает в комментариях, что обе функции будут выводить почти идентичные инструкции.

(все, что я сказал, верно и для -)

1 голос
/ 07 мая 2011

++someInteger и someInteger += 1 абсолютно одинаковы, первый - просто более короткий способ написать второй.Если вы используете это в выражении, есть разница между someInteger++ и ++someInteger, хотя, как отметил Рой Т.естественно для вас.Это, безусловно, не имеет значения для производительности.

0 голосов
/ 07 мая 2011

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

Обратите внимание, что целое число ++ или ++ integer не имеет значения при использовании в цикле for.

...