2009-08-20 2 views

ответ

28

Это разделение и назначение. x /= n логически эквивалентен x = x/n.

+1

+1. это лучший способ поставить, чем моя жалостная попытка;) – AnthonyWJones

+15

... за исключением того, что 'x' оценивается только один раз (что можно наблюдать, если это выражение с побочными эффектами - например, цепочка свойств получает). –

+0

Отличная иллюстрация разницы между логической эквивалентностью и практической эквивалентностью. :) – chaos

7

Это похоже на +=, -= или *=. Это ярлык для операции математического деления с назначением. Вместо того чтобы делать

x = x/10; 

Вы можете получить тот же результат, делая

x /= 10; 

Он присваивает результат первоначальной переменной после того, как операция имела место.

+5

@Asmodon Вы ошибаетесь. Обе линии родов эквивалентны. И они оба изменяют значение x (одинаково). И это короче, если только «х» и пробелом;) – galaktor

2

a /= 2; - это то же самое, что и у a = a/2;.

+0

Избито на 14 секунд –

2

Разделение и назначение:

a /= b; 

такое же, как

a = (a/b); 

Его просто сочетание двух операторов в одну.

2

В следующем примере:

double value = 10; 
value /= 2; 

Значение будет иметь конечное значение 5.

The =/оператор делит переменную операндом (в данном случае, 2) и сохраняет результат обратно в переменную.

4

В большинстве языков, вдохновленных C, ответ: разделите и присвойте. То есть:

a /= b; 

это стенография для:

a = a/b; 

и LHS (a в моем примере) вычисляется один раз. Это имеет значение, когда LHS является сложным, например элементом из массива структур:

x[i].pqr /= 3; 
Смежные вопросы