Download Operadores y Expresiones

Document related concepts

Operadores de incremento y decremento wikipedia , lookup

Lógica binaria wikipedia , lookup

Operación matemática wikipedia , lookup

Operador de desreferencia wikipedia , lookup

Evaluación de cortocircuito wikipedia , lookup

Transcript
Operadores y Expresiones
Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los símbolos más y producto (+, *) son los operadores de suma y producto, los
números 3 y 5, y las variables x y z se llaman operandos. En síntesis, una expresión es
una secuencia de operadores y operandos que especifica un cálculo.
Cuando se utiliza + entre números (o variables) se denomina operador binario, debido a
que el operador + suma dos números. Otro tipo de operador de Java es el operador unitario («unario»), que actúa sobre un único valor. Si la variable x contiene el valor 5, -x
es el valor -5. El signo menos (-) es el operador unitario menos.
Una expresión es un elemento de un programa que toma un valor. En algunos casos
puede también realizar una operación.
Las expresiones pueden ser valores constantes o variables simples, tales como 25 o
‘Z’; pueden ser valores o variables combinadas con operadores (a++); o bien pueden
ser valores combinados con métodos tales como Math.cos(1.5).
Operador de asignación
El operador = asigna el valor de la expresión derecha a la variable situada a su izquierda.
numero = 12;
valor = 5;
Además del operador =, Java proporciona cinco operadores de asignación adicionales
Estos operadores de asignación actúan como una notación abreviada para expresiones
utilizadas con frecuencia. Así, por ejemplo, si se desea multiplicar 10 por i, se puede
escribir
i=i*10;
Nota: Una sentencia de asignación no es una igualdad matemática
Operador
+=
-=
*=
/=
%=
Operadores de Asignación
Sentencia abreviada
a += b
a -= b
a *= b
a /= b
a %= b
Sentencia no abreviada
a=a+b
a=a-b
a=a*b
a=a/b
a=a%b
Java proporciona un operador abreviado de asignación (* =), que realiza una asignación
equivalente
i * =10;
equivale a i = i * 10;
Los programadores en Java se acostumbran al empleo de éstos (i * =10) operadores de
asignación por el ahorro de escritura que suponen.
Operadores Aritméticos
Operadores Binarios (se llaman operadores binarios porque operan sobre dos operandos)
Operador
+
*
/
%
Operadores Binarios
Operación
Descripción
a+b
Adición
a-b
Diferencia
a*b
Producto
a/b
División
a%b
Calcula el resto de dividir a entre b
Los operadores aritméticos sirven para realizar operaciones básicas. Los operadores
aritméticos Java siguen las reglas algebraicas típicas de precedencia o prioridad. Estas
reglas especifican la precedencia de las operaciones aritméticas.
Reglas de precedencia de los operadores
Generalmente son las mismas que se siguen en álgebra.
1. Los operadores de expresión contenidas dentro de pares de paréntesis se evalúan
primero.
2. A continuación se aplican las operaciones de multiplicación, división y residuo.
Si una expresión tiene varias operaciones de multiplicación, división y residuo,
los operadores se aplican de izquierda a derecha. Tienen la misma precedencia
tanto la multiplicación, la división como el residuo.
3. Las operaciones de suma y resta se aplican al final. Si una expresión contiene
varias operaciones de suma y resta, los operadores se aplican de izquierda a derecha. Considerando que la suma y resta tienen el mismo nivel de precedencia
Considera la expresión:
De acuerdo a las citadas reglas de precedencias, la multiplicación se realiza antes que la
suma. Por consiguiente, la expresión anterior equivale a:
Ejemplos de expresiones algebraicas y su equivalencia en Java.
Java m = (a + b + c + d + e) / 5;
Álgebra
Java z = (m* x) + 5;
Precaución
Se debe tener cuidado en la escritura de expresiones que contengan dos o más operaciones para asegurarse que se evalúan en el orden previsto. Incluso aunque no se requieran
paréntesis, deben utilizarse para clarificar el orden concebido de evaluación y escribir
expresiones complicadas en términos de expresiones más simples.
Operadores Unarios (se llama operadores unarios porque opera sobre un operando)
Operador
++
--
Operadores Unarios
Operación
Descripción
++x
Añade 1 a x antes de utilizarla
x++
Añade 1 a x después de utilizarla
--x
Resta 1 a x antes de utilizarla
x-Resta 1 a x después de utilizarla
Por consiguiente, x++ es igual que x = x + 1
++x produce un valor que es mayor en uno que el de x++, y - -x produce un valor que es
menor en uno que el valor de n - Ejemplos:
int a= 1;
int b;
b= a++; // b vale 1 y a vale 2
b= ++a; // b vale 2 y a vale 2
Nota: Si los operadores ++ y - - están prefijos, la operación de incremento o decremento se efectúa antes que la operación de asignación; si los operadores ++ y - - están de
sufijos, la asignación se efectúa en primer lugar y la incrementación o decrementación a
continuación.
Ejemplos:
int i= 7;
Las dos últimas sentencias dan como resultado
y
int i = 7;
En este caso los resultados son
y
El operador cast
Una conversión de tipo es un proceso que convierte el valor de un tipo de dato a otro
tipo de dato diferente. Como Java no permite almacenar a cada variable más que valores
de su tipo, es necesario transformarlos previamente.
Conversión explicitas de tipo (casting)
La sintaxis es:
<variable> = (<tipo de datos>) <expresion>
Ejemplo:
double a;
int b;
b = (int) a;
Es decir, a la variable b, que es de tipo int (entera) se le asigna el valor de la parte entera de la variable a que es de tipo double.
Otro Ejemplo:
Concatenación de cadenas de caracteres
El operador + sirve para concatenar cadenas de caracteres
Ejemplo:
Sentencias y bloques
Ya sabemos que un programa no es más que un conjunto de sentencias (instrucciones)
ordenadas. Una sentencia es una instrucción completa para el compilador, que acaba en
un punto y coma.
Ejemplo:
Una expresión como a = 100 se convierte en una sentencia cuando va seguido de un
punto y coma
int a = 100;
Una sentencia indica una acción.
Tipos de sentencias
Sentencias de declaración: establecen los nombres y el tipo de variables
Sentencias de asignación: asigna valores a las variables
Sentencias de función: llaman a funciones (métodos) para realizar una determinada tarea.
Sentencias estructuradas o de control de flujo (while, if, if-else ,etc.)
Bloques
Es un conjunto de dos o más sentencias agrupadas y encerradas entre llaves no
existiendo punto y coma tras la llave de cierre.
Documentación interna del programa
En un programa o clase, pueden introducirse comentarios que aclaren ciertos aspectos
del mismo siempre que se indique al compilador cuándo comienzan y, en algunos casos,
cuando termina. En java se distinguen tres clases de comentarios.
Comentarios
•
/* Texto */. El texto comprendido entre /* y */ es ignorado por el compilador.
Es decir, no se ejecuta. Se utiliza para comentarios de más de una línea
•
// Texto. El texto desde // hasta el final de línea es ignorado. Se utiliza para comentarios de una sola línea
•
/** Documentación */. El texto comprendido entre /** y */ se utiliza para los
comentarios que deben aparecer en la documentación del programa.
Estos comentarios se suelen situar en la línea anterior a las declaraciones de clase, constructor, interfaces, método, etc.