Java: Operador de asignación

Operador de asignación =

El operador de asignación en Java (como en otros lenguajes) permite asignar valores a las variables. Si una variable tiene un valor previo y se realiza una asignación, el valor que tenía se reemplazará con el nuevo.

/* Se asigna valor 5 a la variable a y valor 6 a la variable b*/
int a = 5;
int b = 6;
/* Al asignar a la variable a el valor de la variable b, la variable a perderá su valor anterior (5) que se reemplazará por el valor de la variable b (6)*/
a = b;

Los valores que se asignan a una variable serán literales o valores devueltos por operaciones. Hay que tener en cuenta que deben ser del mismo tipo, o de uno compatible, que el de la variable a la que se le van a asignar. En caso contrario se producirán errores de compilación.

Ejemplos de asignaciones de asignación en Java válidas:

/* numero es una variable de tipo entero, 5 es un valor literal entero */
int numero = 5;

/* precio es una variable de tipo float, 20.6f es un valor literal float */
float precio = 20.6f;

/* resultado es una variable de tipo entero, 5 es un literal entero y numero es la variable entera del primer ejemplo, por lo que la suma retornará un valor entero */
int resultado = 5 + numero;

/* nombre es una variable de tipo String (cadena), "Marta" es una cadena literal */
String nombre = "Marta";

Ejemplos de asignaciones no válidas en Java que producirán errores de compilación:

/* correcto es una variable de tipo boolean, TRUE es un literal que no existe en Java. 
Los valores posibles para el tipo boolean son true y false (en minúscula) */
boolean correcto = TRUE;

/* x es una variable de tipo int y 7.5 es un literal de tipo double.
La asignación de un dato con punto flotante a un entero produce perdida de información. Da error en compilación, pero se puede forzar haciendo
una conversión de tipo (casting) */
int x = 7.5;

/* dato es una variable de tipo byte, 900 es un literal entero que está fuera del rango permitido para el tipo byte, que va de -128 a 127 */
byte dato = 900;

Operadores de asignación compuestos en Java

Existe una variación del operador de asignación en Java que implica la combinación de este con otros operadores. Esto permite realizar asignaciones de operaciones de una forma más compacta.

En la siguiente tabla se muestran algunos operadores de asignación compuestos que permite Java y su forma extendida equivalente.

OperadorEjemploForma extendida
+=a += b;a = a += b;
-=a -= b;a = a -= b;
*=a *= b;a = a *= b;
/=a /= b;a = a /= b;
%=a %= b;a = a %= b;
Operadores de asignación compuestos en Java

Estos operadores solo se pueden usar cuando la variable a la que se le asigna el valor está implicada en la operación que se va a asignar.

Si nos fijamos en los ejemplos, la forma extendida de a += b; es a = a + b;
En este ejemplo a se suma con b y el resultado de esta operación se asigna de nuevo a la variable a, reemplazando su valor original.

Teniendo en cuenta esto, expresiones como esta: a = b + c; no se podrían comprimir usando este operador, puesto que la variable a no está implicada en la operación que se asigna.

Deja una respuesta

Subir ↑