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.