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.
- Unarios toman un único argumento:
++
,--
, etc.
Pueden tener notación prefijo o sufijo.int i=0; System.out.println("i= "+(i++)); // 0 System.out.println("i= "+(++i)); // 2- Binarios toman dos argumentos:
=
,+
, etc.
Notación infija:op1 operador op2Los 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 + aEstorestoEnteroDeDividirEsto % porEstoOperador 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:Cuál es la diferencia si pasamos de la notación sufijo (count++;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 igualesA 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_ENTRIESHay 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 falseOperadores 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 complementoEjemplo:13 >> 1; (1101 >> 1 = 110)Operadores de Asignación
El operador=
asigna una valor a una variable. Ejemplo:Existen abreviaturas:int count = 0;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