Compound Assignment Operators · Operadores de Asignación Compuesta
| English | Español |
|---|---|
| compound assignment operator/ˈkɒmpaʊnd əˈsaɪnmənt ˈɒpəreɪtə/ | operador de asignación compuesta |
Shorthand for updating
- Updating a variable from itself is so common it has shorthand.
- A compound assignment operator 复合赋值运算符 combines an operation with
=. x += 3;means exactlyx = x + 3;.- The family:
+=,-=,*=,/=,%=.
Abreviatura para actualizar
- Actualizar una variable a partir de sí misma es tan común que tiene una abreviatura.
- Un operador de asignación compuesta 复合赋值运算符 combina una operación con
=. x += 3;significa exactamentex = x + 3;.- La familia:
+=,-=,*=,/=,%=.
The five operators
x += 5→ add5tox.x -= 5→ subtract5.x *= 2→ doublex.x /= 2→ halvex(int rules apply).x %= 3→ replacexwithx % 3(the remainder).- Each reads the current value, applies the op, and stores the result back.
Los cinco operadores
x += 5→ suma5ax.x -= 5→ resta5.x *= 2→ duplicax.x /= 2→ reduce a la mitadx(se aplican reglas de enteros).x %= 3→ reemplazaxcon el resto dex % 3.- Cada uno lee el valor actual, aplica la operación y almacena el resultado de nuevo.
Increment and decrement
x++adds1tox(same asx += 1orx = x + 1).x--subtracts1fromx.- These are extremely common in loops to step a counter.
- They change the variable in place — no
=needed.
Incremento y decremento
x++suma1ax(igual quex += 1ox = x + 1).x--resta1ax.- Son extremadamente comunes en bucles para avanzar un contador.
- Cambian la variable in situ — no se necesita
=.
Same type rules apply
- Compound operators obey the same type rules as the long form.
int x = 7; x /= 2;gives3(int division still truncates).x += 2.5;on anintwould need care — the type ofxdoesn't change.- The shorthand is only shorter; the arithmetic is identical.
Se aplican las mismas reglas de tipo
- Los operadores compuestos obedecen las mismas reglas de tipo que la forma larga.
int x = 7; x /= 2;da como resultado3(la división entera sigue truncando).x += 2.5;sobre unintrequeriría cuidado — el tipo dexno cambia.- La abreviatura es solo más corta; la aritmética es idéntica.
x += 3 is exactly x = x + 3 — the type rules don't change. So int x = 7; x /= 2; still gives 3 (int division truncates), not 3.5. Compound operators are pure shorthand; if the long form would truncate or overflow, so does the short form. And x++ is just x += 1.
x += 3 es exactamente x = x + 3 — las reglas de tipo no cambian. Por lo tanto, int x = 7; x /= 2; todavía produce 3 (la división entera truncada), no 3.5. Los operadores compuestos son simplemente una abreviatura; si la forma larga truncaría o desbordara, la forma corta también lo haría. Y x++ es simplemente x += 1.
Tracing a counter:
int x = 10;x += 5;→xis15.x *= 2;→xis30.x--;→xis29.x %= 5;→xis4(29 % 5).
Rastrear un contador:
int x = 10;x += 5;→xes15.x *= 2;→xes30.x--;→xes29.x %= 5;→xes4(29 % 5).
Compound assignment operators (+=, -=, *=, /=, %=) are shorthand: x += 3 means x = x + 3. x++ and x-- add or subtract 1. They obey the same type rules as the long form — int division in x /= 2 still truncates.
Los operadores de asignación compuesta (+=, -=, *=, /=, %=) son abreviaturas: x += 3 significa x = x + 3. x++ y x-- suman o restan 1. Cumplen con las mismas reglas de tipo que la forma larga — la división entera en int dentro de x /= 2 todavía truncará.
Stepping a counter · Incremento de un contador
Each compound operator updates x in place. · Cada operador compuesto actualiza x en su lugar.
x += 3 is exactly the same as... · x += 3 es exactamente lo mismo que...
Compound assignment is shorthand for x = x + 3. · La asignación compuesta es una abreviatura de x = x + 3.
int x = 10; x += 5; x *= 2; What is x? · int x = 10; x += 5; x *= 2; ¿Cuál es el valor de x?
10 → 15 → 30.
int x = 7; x /= 2; What is x? · int x = 7; x /= 2; ¿Cuál es el valor de x?
int division truncates: 7/2 = 3. · La división entera trunca: 7/2 = 3.
x++ has the same effect as... · x++ tiene el mismo efecto que...
x++ adds 1, same as x += 1. · x++ suma 1, igual que x += 1.
Compound operators follow the same type rules as the long form (so x /= 2 on an int truncates). · Los operadores compuestos siguen las mismas reglas de tipo que la forma larga (por ejemplo, x /= 2 en un int truncará).
Shorthand doesn't change the arithmetic — int division still truncates. · La abreviatura no cambia la aritmética: la división entera sigue truncando.