Hay varias operaciones matemáticas que son frecuentes. Veremos cómo
expresarlas en Java, y también veremos otras operaciones "menos
frecuentes".
Las que más encontramos normalmente son:
Operación matemática |
Símbolo
correspondiente |
Suma |
+ |
Resta |
- |
Multiplicación |
* |
División |
/ |
Hemos visto un ejemplo de cómo calcular la suma de dos números; las otras operaciones se emplearían de forma similar.
Esas son las operaciones que todo el mundo conoce, aunque no haya manejado ordenadores. Pero hay otras operaciones que son frecuentes en informática y no tanto para quien no ha manejado ordenadores, pero que aun así deberíamos ver:
Operación |
Símbolo |
Resto de la división |
% |
Desplazamiento de bits
a la derecha |
>> |
Desplazamiento de bits
a la derecha |
<< |
Desplazamiento rellenando
con ceros |
>>> |
Producto lógico (and) |
& |
Suma lógica (or) |
| |
Suma exclusiva (xor) |
^ |
Complemento |
~ |
El resto de la división tambiés es una operación conocida. Por ejemplo, si dividimos 14 entre 3 obtenemos 4 como cociente y 2 como resto, de modo que el resultado de 10 % 3 sería 2.
Las operaciones a nivel de bits deberían ser habituales para los estudiantes de informática, pero quizás no tanto para quien no haya trabajado con el sistema binario. No entraré por ahora en más detalles, salvo poner un par de ejemplos para quien necesite emplear estas operaciones: para desplazar los bits de "a" dos posiciones hacia la izquierda, usaríamos b << 2; para invertir los bits de "c" (complemento) usaríamos ~c; para hacer una suma lógica de los bits de "d" y "f" sería d | f.
Hay varias operaciones muy habituales , que tienen una sintaxis abreviada
en Java.
Por ejemplo, para sumar 2 a una variable "a", la forma "normal" de conseguirlo sería:
a = a + 2;
pero existe una forma abreviada en Java:
a += 2;
Al igual que tenemos el operador += para aumentar el valor de una variable, tenemos -= para disminuirlo, /= para dividirla entre un cierto número, *= para multiplicarla por un número, y así sucesivamente. Por ejemplo, para multiplicar por 10 el valor de la variable "b" haríamos
b *= 10;
También podemos aumentar o disminuir en una unidad el valor de una variable, empleando los operadores de "incremento" (++) y de "decremento" (--). Así, para sumar 1 al valor de "a", podemos emplear cualquiera de estas tres formas:
a = a +1;
a += 1;
a++;
Los operadores de incremento y de decremento se pueden escribir antes o después de la variable. Así, es lo mismo escribir estas dos líneas:
a++;
++a;
Pero hay una diferencia si ese valor se asigna a otra variable "al mismo tiempo" que se incrementa/decrementa:
int c = 5;
int b = c++;
da como resultado c = 6 y b = 5 (se asigna el valor a "b" antes de incrementar "c") mientras que
int c = 5;
int b = ++c;
da como resultado c = 6 y b = 6 (se asigna el valor a "b" después de incrementar "c").
También podremos comprobar si entre dos números (o entre dos variables)
existe una cierta relación del tipo "¿es a mayor que b?" o
"¿tiene a el mismo valor que b?". Los operadores que utilizaremos
para ello son:
Operación |
Símbolo |
Mayor que |
> |
Mayor o igual que |
>= |
Menor que |
< |
Menor o igual que |
<= |
Igual que |
== (dos símbolos de
"igual") |
Distinto de |
!= |
Así, por ejemplo, para ver si el valor de una variable "b" es distinto de 5, escribiríamos algo parecido (veremos la sintaxis correcta un poco más adelante) a
SI b != 5 ENTONCES ...
o para ver si la variable "a" vale 70, sería algo como (nuevamente, veremos la sintaxis correcta un poco más adelante)
SI a == 70 ENTONCES ...
Es muy importante recordar esta diferencia: para asignar un valor a una variable se emplea un único signo de igual, mientras que para comparar si una variable es igual a otra (o a un cierto valor) se emplean dos signos de igual.
Podremos enlazar varias condiciones, para indicar qué hacer cuando se cumplan ambas, o sólo una de ellas, o cuando una no se cumpla. Los operadores que nos permitirán enlazar condiciones son:
Operación |
Símbolo |
Y |
&& |
O |
|| |
No |
! |
Por ejemplo, la forma de decir "si a vale 3 y b es mayor que 5, o bien a vale 7 y b no es menor que 4" en una sintaxis parecida a la de Java (aunque todavía no es la correcta) sería:
SI (a==3 && bb>5) || (a==7 && ! (b<4))
Regresar.