TutorJava Nivel Básico

Las expresiones realizan el trabajo de un programa Java. Entre otras cosas, las expresiones se utilizan para calcular y asignar valores a las variables y para controlar el flujo de un programa Java. El trabajo de una expresi�n se divide en dos partes: realizar los c�lculos indicados por los elementos de la expresi�n y devolver alg�n valor.

Definici�n: Una expresi�n es una serie de variables, operadores y llamadas a m�todos (construida de acuerdo a la sintaxis del lenguaje) que eval�a a un valor sencillo.

El tipo del dato devuelto por una expresi�n depende de los elementos utilizados en la expresi�n. La expresi�n count++ devuelve un entero porque ++ devuelve un valor del mismo tipo que su operando y count es un entero. Otras expresiones devuelven valores booleanos, cadenas, etc...

Una expresi�n de llamada a un m�todo devuelve el valor del m�todo; as� el tipo de dato de una expresi�n de llamada a un m�todo es el mismo tipo de dato que el valor de retorno del m�todo. El m�todo System.in.read() se ha declarado como un entero, por lo tanto, la expresi�n System.in.read() devuelve un entero.

La segunda expresi�n contenida en la sentencia System.in.read() != -1 utiliza el operador !=.

Recuerda que este operador comprueba si los dos operandos son distintos. En esta sentencia los operandos son System.in.read() y -1.

System.in.read() es un operando v�lido para != porque devuelve un entero. As� System.in.read() != -1 compara dos enteros, el valor devuelto por System.in.read() y -1.

El valor devuelto por != es true o false dependiendo de la salida de la comparaci�n.

Como has podido ver, Java te permite construir expresiones compuestas y sentencias a partir de varias expresiones peque�as siempre que los tipos de datos requeridos por una parte de la expresi�n correspondan con los tipos de datos de la otra.

Tamb�en habr�s podido concluir del ejemplo anterior, el orden en que se eval�an los componentes de una expresi�n compuesta.

Por ejemplo, toma la siguiente expresi�n compuesta.

x * y * z

En este ejemplo particular, no importa el orden en que se eval�e la expresi�n porque el resultado de la multiplicaci�n es independiente del orden. La salida es siempre la misma sin importar el orden en que se apliquen las multiplicaciones. Sin embargo, esto no es cierto para todas las expresiones. Por ejemplo, esta expresi�n obtiene un resultado diferente dependiendo de si se realiza primero la suma o la divisi�n.

x + y / 100

Puedes decirle directamente al compilador de Java c�mo quieres que se eval�e una expresi�n utilizando los par�ntesis ( y ).

Por ejemplo, para aclarar la sentencia anterior, se podr�a escribir: (x + y)/ 100.

Si no le dices expl�citamente al compilador el orden en el que quieres que se realicen las operaciones, �l decide bas�ndose en la precedencia asignada a los operadores y otros elementos que se utilizan dentro de una expresi�n.

Los operadores con una precedencia m�s alta se eval�an primero. Por ejemplo. el operador divisi�n tiene una precedencia mayor que el operador suma, por eso, en la expresi�n anterior x + y / 100, el compilador evaluar� primero y / 100. As�

x + y / 100

es equivalente a.

x + (y / 100)

Para hacer que tu c�digo sea m�s f�cil de leer y de mantener deber�as explicar e indicar con par�tesis los operadores que se deben evaluar primero.

La tabla siguiente muestra la precedencia asignada a los operadores de Java. Los operadores se han listado por orden de precedencia de mayor a menor. Los operadores con mayor precedencia se eval�an antes que los operadores con un precedencia relativamente menor. Lo operadores con la misma precedencia se eval�an de izquierda a derecha.

.�Precedencia de Operadores en Java

operadores sufijo [] . (params) expr++ expr--
operadores unarios ++expr --expr +expr -expr ~ !
creaci�n o tipo new (type)expr
multiplicadores * / %
suma/resta + -
desplazamiento << >> >>>
relacionales < > <= >= instanceof
igualdad == !=
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
AND l�gico &&
OR l�gico ||
condicional ? :
asignaci�n = += -= *= /= %= ^= &= |= <<= >>= >>>=

COMPARTE ESTE ARTÍCULO

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