Operadores

Argumentos

Además de realizar una operación, los operadores devuelven un valor. El valor y su tipo dependen del operador y del tipo y valor de sus operandos.

Los operadores prefijo devuelven un valor antes de realizar la operación y los sufijo después.


Cuando un operador realiza distintas operaciones dependiendo del tipo de sus argumentos se dice que está sobrecargado (overloaded).

Operadores Aritméticos

sumaEsto + aEsto
restoEnteroDeDividirEsto % porEsto
Operador    Uso        Descripción
   +     op1 + op2     Suma op1 y op2
   -     op1 - op2     Resta op2 de op1
   *     op1 * op2     Multiplica op1 por op2
   /     op1 / op2     Divide op1 por op2
   %     op1 % op2     Calcula el resto de dividir op1 por op2


Nota: Java extiende la definición (sobrecarga) del operador + a la concatenación de strings.
System.out.println("La entrada tiene " + cuenta + " caracteres.");

+ y - tienen versiones unarias para fijar el signo de un operando:

Operador    Uso        Descripción
   +       + op        Indica un valor positivo
   -       - op        Cambia el signo de op

++ incrementa su operando en una unidad.
-- decrementa su operando en una unidad.
Ejemplo:

count++;
Cuál es la diferencia si pasamos de la notación sufijo (count++) a la notación prefijo (++count) en el siguiente código?
do {
    . . .
} while (count++ < 6);

Operadores Relacionales y Condicionales

Los operadores relacionales comparan dos valores y determinan la relación entre ellos:
Operador     Uso          Devuelve true si
   >      op1 > op2       op1 es mayor que op2
   >=     op1 >= op2      op1 es mayor o igual a op2
   <      op1 < op2       op1 es menor que op2
   <=     op1 <= op2      op1 es menor o igual a op2
   ==     op1 == op2      op1 y op2 son iguales
   !=     op1 != op2      op1 y op2 no son iguales
A menudo los operadores relacionales se usan con otro conjunto de operadores, los condicionales, para construir expresiones booleanas más complejas. Por ejemplo:
0 < index && index < NUM_ENTRIES

Hay tres operadores condicionales:

Operador     Uso
Devuelve true si
   &&      op1 && op2     op1 y op2 son ambos true
   ||      op1 || op2     op1 o op2 es true
   !       ! op           op es false

Operadores de bits

Permiten manipular datos a nivel de bits.
Operador     Uso          Operación
   >>     op1 >> op2      desplaza a la derecha
   <<     op1 << op2      desplaza a la izquierda
   >>>    op1 >>> op2     desplaza a la derecha sin extensión de signo
   &      op1 & op2       and
   |      op1 | op2       or
   ^      op1 ^ op2       xor
   ~      ~ op            complemento
Ejemplo:
13 >> 1; (1101 >> 1 = 110)

Operadores de Asignación

El operador = asigna una valor a una variable. Ejemplo:
int count = 0;
Existen abreviaturas:
i = i + 2; (i += 2;)
Operador     Uso             Equivale a
   +=      op1 += op2     op1 = op1 + op2
   -=      op1 -= op2     op1 = op1 - op2
   *=      op1 *= op2     op1 = op1 * op2
   /=      op1 /= op2     op1 = op1 / op2
   %=      op1 %= op2     op1 = op1 % op2

   &=      op1 &= op2     op1 = op1 & op2
   |=      op1 |= op2     op1 = op1 | op2
   ^=      op1 ^= op2     op1 = op1 ^ op2
   <<=     op1 <<= op2    op1 = op1 << op2
   >>=     op1 >>= op2    op1 = op1 >> op2
   >>>=    op1 >>>= op2   op1 = op1 >>> op2


Copyright © Andrés Marín López, Ingeniería Telemática, Univ.Carlos III de Madrid 1997