2009-08-20 34 views

Respuesta

28

Es dividir y asignar. x /= n es lógicamente equivalente a x = x/n.

+1

+1. esa es una mejor manera de poner que mi compasivo intento;) – AnthonyWJones

+15

... excepto que 'x' solo se evalúa una vez (lo cual es observable si se trata de una expresión con efectos secundarios, por ejemplo, una cadena de propiedad). –

+0

Excelente ilustración de la diferencia entre la equivalencia lógica y la equivalencia práctica. :) – chaos

7

Es similar a +=, -= o *=. Es un atajo para una operación de división matemática con una tarea. En vez de hacer

x = x/10; 

Usted puede obtener el mismo resultado haciendo

x /= 10; 

Se asigna el resultado a la variable original después de la operación ha tenido lugar.

+5

@ Asmodon Usted está equivocado. Ambas líneas de womps son equivalentes. Y ambos modifican el valor de x (de la misma manera). Y es más corto, si solo por una 'x' y un espacio;) – galaktor

2

a /= 2; es el mismo de a = a/2;.

+0

Batido por 14 segundos –

2

Una división y una asignación:

a /= b; 

es la misma que

a = (a/b); 

su simplemente una combinación de los dos operadores en una sola.

2

En el siguiente ejemplo:

double value = 10; 
value /= 2; 

Valor tendrá un valor final de 5.

El =/operador divide la variable por el operando (en este caso, 2) y almacena el resultado de vuelta en la variable.

4

En la mayoría de los idiomas inspirados en C, la respuesta es: divide y asigna. Es decir:

a /= b; 

es una abreviatura para:

a = a/b; 

El LHS (a en mi ejemplo) se evalúa una vez. Esto importa cuando el LHS es complejo, como un elemento de una matriz de estructuras:

x[i].pqr /= 3;