Permiten asignar valores a variables. El operador de asignación elemental es el igual (=) que asigna un valor o el resultado de una expresión a una variable, siguiendo el siguiente formato:

nombreVariable = valorAsignado;

El tipo de dato del valor asignado debe ser del mismo tipo que el de la variable a la que se pretende asignar. En caso de que no sean del mismo tipo, hay que utilizar algún tipo de conversión como el casting, utilizando entre paréntesis el nombre del tipo de dato al que se quiere convertir.

Observa el siguiente ejemplo:

int numEntero;
numEntero = 364; //Correcto
numEntero = 264.38; //Incorrecto
numEntero = (int)264.83; //Correcto, se asigna el valor 264

También se puede utilizar el operador de asignación para guardar en una variable el resultado de una expresión que dé como resultado un valor del mismo tipo que la variable.

nombreVariable = Expresión;

Por ejemplo:

int numEntero;
numEntero = 364 * 2 + 266;

Además del operador igual (=), se pueden emplear otros operadores de asignación, que a la vez que asignan un valor realizan un cálculo:

  • += (le suma a la variable un valor y guarda el resultado en la misma variable).
  • -= (le resta a la variable un valor y guarda el resultado en la misma variable).
  • *= (multiplica la variable por un valor y guarda el resultado en la misma variable).
  • /= (divide la variable por un valor y guarda el resultado en la misma variable).
  • %= (obtiene el resto de dividir la variable por un valor y guarda el resultado en la misma variable).

Ejemplos:

cálculo = 5;
cálculo += 6; //Incrementa en 6 el valor de la variable cálculo
System.out.println(cálculo); //Muestra 11

cálculo *= 2; //Duplica el valor de cálculo
System.out.println(cálculo); //Muestra 22

Por tanto, una sentencia como a+=3 es lo mismo que a=a+3.

Otros operadores de asignación son el incremento y el decremento:

  • ++ (incrementa en 1 el valor de una variable).
  • -- (decrementa en 1 el valor de una variable).
num1 = 3;
num2 = 7;
num1++; //Suma 1 a num1
System.out.println(num1); //Muestra 4

num2--; //resta 1 a num2
System.out.println(num2); //Muestra 6

por tanto, una sentencia como x++ es los mismo que x=x+1, y x-- es lo mismo que x=x-1.

Pero hay dos formas de utilizar el incremento y el decremento. Se puede usar por ejemplo x++ ó ++x. La diferencia estriba en el modo en el que se comporta la asignación.

Ejemplo:

int x=5, y=5, z;
z=x++; //z vale 5, x vale 6
       //porque primero se asigna el valor de x a z
       //después se incrementa x
z=++y; //z vale 6, y vale 6
       //porque primero se incrementa la variable y
       //después se asigna el valor de y a z

Existe también un operador de asignación condicional, que permite asignar a una variable un valor o otro dependiendo de una expresión condicional. El formato es el siguiente:

variable = condición ? valor1 : valor2;

La condición que se indica debe ser una variable booleana o una expresión condicional que resulte un valor de tipo booleano (true o false).

Por ejemplo:

mensaje = (num1 >= 0) ? "Positivo" : "Negativo";

Si se mostrara en pantalla posteriormente el valor de la variable mensaje, aparecerá "Positivo" si el valor de la variable num1 es mayor o igual que cero, y "Negativo" en caso contrario.