TutorJava Nivel Básico

Los operadores realizan algunas funciones en uno o dos operandos. Los operadores que requieren un operador se llaman operadores unarios. Por ejemplo, ++ es un operador unario que incrementa el valor su operando en uno.

Los operadores que requieren dos operandos se llaman operadores binarios. El operador = es un operador binario que asigna un valor del operando derecho al operando izquierdo.

Los operadores unarios en Java pueden utilizar la notaci�n de prefijo o de sufijo. La notaci�n de prefijo significa que el operador aparece antes de su operando.

operador operando

La notaci�n de sufijo significa que el operador aparece despu�s de su operando:

operando operador

Todos los operadores binarios de Java tienen la misma notaci�n, es decir aparencen entre los dos operandos:

op1 operator op2

Adem�s de realizar una operaci�n tambi�n devuelve un valor. El valor y su tipo dependen del tipo del operador y del tipo de sus operandos. Por ejemplo, los operadores aritm�ticos (realizan las operaciones de aritm�tica b�sica como la suma o la resta) devuelven n�meros, el resultado t�pico de las operaciones aritm�tcias. El tipo de datos devuelto por los operadores aritm�ticos depende del tipo de sus operandos: si sumas dos enteros, obtendr�s un entero. Se dice que una operaci�n eval�a su resultado.

Es muy �til dividir los operadores Java en las siguientes categor�as: aritm�ticos, relacionales y condicionales. l�gicos y de desplazamiento y de asignaci�n.

.�Operadores Aritm�ticos

El lenguaje Java soporta varios operadores arit�ticos - incluyendo + (suma), - (resta), * (multiplicaci�n), / (divisi�n), y % (m�dulo)-- en todos los n�meros enteros y de coma flotante. Por ejemplo, puedes utilizar este c�digo Java para sumar dos n�meros:

sumaEsto + aEsto

O este c�digo para calcular el resto de una divisi�n:

divideEsto % porEsto

Esta tabla sumariza todas las operaciones aritm�ticas binarias en Java.

Operador Uso Descripci�n
+ op1 + op2 Suma op1 y op2
- op1 - op2 Resta op2 de op1
* op1 * op2 Multiplica op1 y op2
/ op1 / op2 Divide op1 por op2
% op1 % op2 Obtiene el resto de dividir op1 por op2

Nota: El lenguaje Java extiende la definici�n del operador + para incluir la concatenaci�n de cadenas.

Los operadores + y - tienen versiones unarias que seleccionan el signo del operando.

Operador Uso Descripci�n
+ + op Indica un valor positivo
- - op Niega el operando

Adem�s, existen dos operadores de atajos aritm�ticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando.

Operador Uso Descripci�n
++ op ++ Incrementa op en 1; eval�a el valor antes de incrementar
++ ++ op Incrementa op en 1; eval�a el valor despu�s de incrementar
-- op -- Decrementa op en 1; eval�a el valor antes de decrementar
-- -- op Decrementa op en 1; eval�a el valor despu�s de decrementar

.�Operadores Relacionales y Condicionales

Los valores relacionales comparan dos valores y determinan la relaci�n entre ellos. Por ejemplo, != devuelve true si los dos operandos son distintos.

Esta tabla sumariza los operadores relacionales de Java.

Operador Uso Devuelve true si
> op1 > op2 op1 es mayor que op2
>= op1 >= op2 op1 es mayor o igual que op2
< op1 < op2 op1 es menor que op2
<= op1 <= op2 op1 es menor o igual que op2
== op1 == op2 op1 y op2 son iguales
!= op1 != op2 op1 y op2 son distintos

Frecuentemente los operadores relacionales se utilizan con otro juego de operadores, los operadores condicionales, para construir expresiones de decisi�n m�s complejas. Uno de estos operadores es && que realiza la operaci�n Y booleana . Por ejemplo puedes utilizar dos operadores relacionales diferentes junto con && para determinar si ambas relaciones son ciertas. La siguiente l�nea de c�digo utiliza esta t�cnica para determinar si un indice de un array est� entre dos l�mites- esto es, para determinar si el indice es mayor que 0 o menor que NUM_ENTRIES (que se ha definido pr�viamente como un valor constante):

0 < index && index &lt NUM_ENTRIES

Observa que en algunas situaciones, el segundo operando de un operador relacional no ser� evaluado. Consideremos esta sentencia:

((count > NUM_ENTRIES) && (System.in.read() != -1))

Si count es menor que NUM_ENTRIES, la parte izquierda del operando de && eval�a a false. El operador && s�lo devuelve true si los dos operandos son verdaderos. Por eso, en esta situaci�n se puede deteminar el valor de && sin evaluar el operador de la derecha. En un caso como este, Java no eval�a el operando de la derecha. As� no se llamar� a System.in.read() y no se leer� un car�cter de la entrada estandard.

Aqu� tienes tres operadores condicionales.

Operador Uso Devuelve true si
&& op1 && op2 op1 y op2 son verdaderos
|| op1 || op2 uno de los dos es verdadero
! ! op op es falso

El operador & se puede utilizar como un sin�nimo de && si ambos operadores son booleanos. Similarmente, | es un sinonimo de || si ambos operandos son booleanos.

.�Operadores de Desplazamiento

Los operadores de desplazamiento permiten realizar una manipualci�n de los bits de los datos. Esta tabla sumariza los operadores l�gicos y de desplazamiento disponibles en el lenguaje Java.

Operador Uso Descripci�n
>> op1 >> op2 desplaza a la derecha op2 bits de op1
<< op1 << op2 desplaza a la izquierda op2 bits de op1
>>> op1 >>> op2 desplaza a la derecha op2 bits de op1(sin signo)
& op1 & op2 bitwise and
| op1 | op2 bitwise or
^ op1 ^ op2 bitwise xor
~ ~ op bitwise complemento

Los tres operadores de desplazamiento simplemente desplazan los bits del operando de la izquierda el n�mero de posiciones indicadas por el operador de la derecha. Los desplazamientos ocurren en la direcci�n indicada por el propio operador. Por ejemplo:

13 >> 1;

desplaza los bits del entero 13 una posici�n a la derecha. La representaci�n binaria del n�mero 13 es 1101. El resultado de la operaci�n de desplazamiento es 110 o el 6 decimal. Observe que el bit situado m�s a la derecha desaparece. Un desplazamiento a la derecha de un bit es equivalente, pero m�s eficiente que, dividir el operando de la izquierda por dos. Un desplazamiento a la izquierda es equivalente a multiplicar por dos.

Los otros operadores realizan las funciones l�gicas para cada uno de los pares de bits de cada operando. La funci�n "y" activa el bit resultante si los dos operandos son 1.

op1 op2 resultado
0 0 0
0 1 0
1 0 0
1 1 1

Supon que quieres evaluar los valores 12 "and" 13:

12 & 13

El resultado de esta operaci�n es 12. �Por qu�? Bien, la representaci�n binaria de 12 es 1100 y la de 13 es 1101. La funci�n "and" activa los bits resultantes cuando los bits de los dos operandos son 1, de otra forma el resultado es 0. Entonces si colocas en l�nea los dos operandos y realizas la funci�n "and", puedes ver que los dos bits de mayor peso (los dos bits situados m�s a la izquierda de cada n�mero) son 1 as� el bit resultante de cada uno es 1. Los dos bits de menor peso se eval�an a 0 poque al menos uno de los dos operandos es 0:

    	1101
  & 	1100
	------
	1100

El operador | realiza la operaci�n O inclusiva y el operador ^ realiza la operaci�n O exclusiva. O inclusiva significa que si uno de los dos operandos es 1 el resultado es 1.

op1 op2 resultado
0 0 0
0 1 1
1 0 1
1 1 1

O exclusiva significa que si los dos operandos son diferentes el resultado es 1, de otra forma el resultado es 0.

op1 op2 resultado
0 0 0
0 1 1
1 0 1
1 1 0

Y finalmente el operador complemento invierte el valor de cada uno de los bites del operando: si el bit del operando es 1 el resultado es 0 y si el bit del operando es 0 el resultado es 1.

.�Operadores de Asignaci�n

Puedes utilizar el operador de asignaci�n =, para asignar un valor a otro. Adem�s del operador de asignaci�n b�sico, Java proporciona varios operadores de asignaci�n que permiten realizar operaciones aritm�tcias, l�gicas o de bits y una operaci�n de asignaci�n al mismo tiempo. Especificamente, supon que quieres añadir un n�mero a una variable y asignar el resultado dentro de la misma variable, como esto:

i = i + 2;

Puedes ordenar esta sentencia utilizando el operador +=.

i += 2;

Las dos l�neas de c�digo anteriores son equivalentes.

Esta tabla lista los operadores de asignaci�n y sus equivalentes.

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 &gt> op2
>>>= op1 >>>= op2 op1 = op1 >>> op2

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP