Los operadores en Java

Los operadores en Java, son usados para realizar operaciones con variables y valores. Los valores a emplear en la operación a realizar son denominados operandos, mientras que la operación a realizar con los operandos viene definida por el operador.

Java tiene diferentes tipos de operadores:

  • Aritméticos.
  • De comparación.
  • Lógicos.
  • De asignación.

Operadores aritméticos en Java

Java dispone de los siguientes operadores que realizan las operaciones indicadas en la tabla siguiente:

OperadorOperación
+Suma
Resta
*Multiplicación
/División
%Modulo: Resto de la división entre enteros.
++Incremento
Decremento
Operadores en Java

Veamos en la práctica como trabajan estos operadores

Ejercicio 1: Practicando con operadores aritméticos en Java

  1. Abre el compilador online:
  2. Introduce el siguiente código:
public class HelloWorld{

public static void main(String []args){

    int num1=7,num2=11;
    double result;

    System.out.println ("Numeros: "+num1+" - "+num2);

    result = num1+num2;
    System.out.println ("Suma: "+result);

    result = num1-num2;
    System.out.println("Resta: "+result);

    result = num1/num2;
    System.out.println("División: "+result);

    result = (double)num1/(double)num2;
    System.out.println("División - casting double: "+result);

    result = num1%num2;
    System.out.println("Resto: "+result);

    result = num2%num1;
    System.out.println("Resto: "+result);

    int inc = num1++;
    System.out.println("Incrementando el primer número :"+inc);

    inc =++num1;
    System.out.println("Incrementando el primer número :"+inc);

    int dec = --num2;
    System.out.println("Decrementando el segundo número :"+dec);

    }
}

Línea 3: Declaración e inicialización de las dos variables tipo int que utilizaremos como operandos.

Línea 4: Declaración de la variable tipo double que utilizaremos para guardar los resultados de nuestras operaciones.

Línea 6: Operación de suma entre las variables num1 y num2. El resultado se almacena en la variable result

Línea 7: Dibujamos el resultado de la operación de suma.

Línea 10: División de dos operandos de tipo integer. Como la división no es exacta, el resultado pierde precisión.

Línea 12: División de dos operandos tipo int que han sido previamente casteados al tipo double.

Línea 14: Operación modulo con los operandos num1 y num2. Como num1< num2, el resto de la división de ambos números es num1.

Línea 18: operador de incremento, en su modo sufijo. Primero el dato en num1 es guardado en la variable inc y después se incrementa en 1.

Línea 19: Dibuja el valor de inc que es igual al valor de num1 antes de ser incrementado.

Línea 20: operador de incremento, en su modo prefijo. El dato en num1, que tiene un valor de 8, es primero incrementado y después guardado en la variable inc.

Línea 22: operador de decremento, en su modo prefijo, es aplicado a la variable num2 y el resultado es almacenado en la variable dec

  1. Ejecuta el programa. Deberías obtener el resultado siguiente:
Numeros: 7 - 11
Suma: 18.0
Resta: -4.0
División: 0.0
División - casting double: 0.6363636363636364
Resto: 7.0
Resto: 4.0
Incrementando el primer número :7
Incrementando el primer número :9
Decrementando el segundo número :10

Operadores de Comparación en Java

Se emplean para comparar dos valores:

OperadorDescripción
==Igual
!=Distinto
>Mayor que
<Menor que
>=Mayor o igual que
<=Menor o igual que
Operadores de comparación

Practiquemos con este tipo de operadores

Ejercicio 2: Practicando con operadores de comparación en Java

  1. Abre el compilador online:
  2. Introduce el siguiente código:
public class Operadores{

public static void main(String []args){

    int num1,num2;
    num1 = 2; num2 = 3;

    if (num1 == num2){
        System.out.println("1.-Ambos números son iguales");
    }else{
        System.out.println("1.-Los números son diferentes");
    }

    num1 = 3;
    if (num1 == num2){
        System.out.println("2.-Ambos números son iguales");
    }else{
        System.out.println("2.-Los números son diferentes");
    }

    num1 = 7; num2 = 3;
    if (num1 > num2){
        System.out.println("3.-El primer número es mayor que el segundo");
    }else{
        System.out.println("3.-El Segundo número es mayor que el primero");
    }
    }
}

Línea 1: En esta ocasión, he cambiado el nombre a la clase, del clásico “HelloWorld” a “Operadores”.

Línea 3: Declaración de las dos variables int que utilizaré con los operadores de comparación.

Línea 4: Inicialización de las dos variables. Nota: el operador “=” es un operador de asignación, no de comparación.

Línea 5: Comparamos ambas variables dentro de una sentencia “if”, usando el operador de comparación “==”. Nota: este si es un operador de comparación, con dos signos iguales seguidos. El resultado de la operación de comparación será verdadero si ambos valores son iguales y falso si no lo son.

Línea 6: Se ejecutaría si el resultado de la comparación dentro de la sentencia “if” es verdadero. Escribiendo el mensaje en pantalla.

Línea 8: Se ejecutaría si el resultado de la comparación dentro de la sentencia “if” es falso. Escribiendo el correspondiente mensaje en pantalla.

Línea 10: Se actualiza el valor de la variable num1, ahora valdrá 3. Ambas variables tienen el mismo valor.

Línea 11: Sentencia “if” similar a la de la línea 5

Línea 16: Cambia el valor de ambas variables

Línea 17: Una nueva sentencia “if” compara ambas variables, esta vez empleando el operador mayor que: “>”.

Aunque en esta práctica no chequeamos todos los operadores de comparación, es suficiente para poder hacerse una idea de cómo funcionan los mismo. El alumno puede chequear el resto de operadores y practicar su funcionamiento.

  1. Ejecuta el programa y obtendras el siguiente resultado:
1.-Los números son diferentes
2.-Ambos números son iguales
3.-El primer número es mayor que el segundo

Operadores Lógicos en Java

Se emplean para realizar operaciones lógicas con variables

OperadorNombreDescripción
&ANDDevuelve verdadero cuando ambos operandos son verdaderos. Los operandos son evaluados antes de realizar la operación.
|ORDevuelve verdadero si al menos uno de los operandos es verdadero. Los operandos son evaluados antes de aplicar el operador.
^XORDevuelve verdadero si solamente uno de los operandos es verdadero.
&&Conditional ANDIgual que el operador AND, pero si el operador de la izquierda es evaluado falso, entonces se devuelve falso sin evaluar el operador de la derecha.
||Conditional ORIgual al operador OR, pero si el operador de la izquierda es evaluado como verdadero, entonces se devuelve verdadero, sin evaluar el operador de la derecha.
!NOTSe trata de un operador unario, que es aquel que funciona con solo un operando.
Si el operando es verdadero, se devuelve falso. Y si el operando es falso, se devuelve verdadero.
Operadores lógicos en Java

Practiquemos con este tipo de operadores

Ejercicio 3: Practicando con operadores lógicos en Java

  1. Abre el compilador online:
  2. Introduce el siguiente código:
public class OperadoresLogicos{

public static void main(String []args){

    boolean b1=true,b2=false;

    System.out.println ("b1= "+b1);
    System.out.println ("b2= "+b2);
    System.out.println ("!b2= "+!b2);
    System.out.println ("b1 & b2= "+(b1&b2));
    System.out.println ("b1 && b2= "+(b1&&b2));
    System.out.println ("b1 | b2= "+(b1|b2));
    System.out.println ("b1 || b2= "+(b1||b2));
    System.out.println ("b1 ^ b2= "+(b1^b2));
    }
}

Línea 3: Declaración de dos variables booleanas que serán las que emplearé para mostrar cómo funcionan los distintos operadores lógicos.

El resto de las líneas hacen todas prácticamente lo mismo: Dibujan por pantalla una operación y su resultado.

  1. Ejecuta el programa. Debieras obtener el siguiente resultado:
b1= true
b2= false
!b2= true
b1 & b2= false
b1 && b2= false
b1 | b2= true
b1 || b2= true
b1 ^ b2= true

Operadores de asignación en Java

Este tipo de operadores son empleados para asignar valores a las variables:

OperadorEjemploIgual que
=x = 5x = 5
+=x += 3x = x+3
-=x -=3x = x-3
*=x *= 3x = x*3
/=x /= 3x = x/3
%=x %= 3x = x%3
&=x &=3x = x&3
|=x |= 3x = x|3
^=x ^= 3x = x^3
<<=x <<= 3x = x << 3
>>=x >>= 3x = x >>= 3
Operadores de asignación

El primero de la tabla anterior es tremendamente común y ya lo hemos utilizado varias veces. Es el que empleamos cuando inicializamos una variable para guardar en esta un determinado valor.

El resto no son tan comunes, pero en cualquier caso, veamos cómo funcionan.

Ejercicio 4: Practicando con operadores de asignación en Java

  1. Abre el compilador online:
  2. Introduce el siguiente código:
public class OperadoresAsignacion{

public static void main(String []args){

    int num = 2;

    System.out.println ("numero= "+num);
    System.out.println("numero += 2 -> incrementa numero en 2:");
    System.out.print("\t");
    System.out.println (num+=2);

//Volvemos a almacenar el valor 2 en la variable num
    num = 2;
    System.out.println("numero *= 3 -> multiplica numero por 3:");
    System.out.print("\t");
    System.out.println (num*=3);
    }
}

Línea 3: Declaración e inicialización de una variable de tipo int que empleare para realizar las operaciones de asignación

Línea 4 a 6: Instrucciones para pintar por pantalla distintos textos y valores. Esto, a estas alturas, ya sabemos cómo funciona.

Línea 7: Con esta instrucción, dibujamos por pantalla el resultado de la operación “num+=2”.

Línea 12: Y con esta otra instrucción, dibujamos por pantalla el resultado de la operación “num*=3”.

Esta práctica provee una idea general del uso de los operadores de asignación. El alumno puede chequear el resto de operadores y practicar como funcionan.

  1. Ejecuta el programa. Debieras obtener el siguiente resultado:
numero= 2
numero += 2 -> incrementa numero en 2:
	4
numero *= 3 -> multiplica numero por 3:
	6

Ejercicios con operadores

Con los operadores vamos a estar trabajando continuamente en todos los ejercicios que iré proponiendo en los distintos posts. Además, estamos familiarizados con ellos y son sencillos de entender y aplicar. Por ello, no veo mucho sentido a dedicar un post específicamente a ejercicios sobre este tema, entiendo que con plantear aquí uno es suficiente.

Ejercicio 5

Corrige los errores en el siguiente programa para que funcione correctamente.

public Class Multi {

public static void main(String args[]) {

    int a; b, c;
    a=1; b==1 , c=3;

    System.out.println(" b x c =" + b*c);
    System.out.println(" a x c ="  a*c);

    if (a=b){
        System.out.println ("a y b son iguales");
    }
    }
}

Un posible código solución sería:

public class Multi {

public static void main(String args[]) {

    int a, b, c;
    a=1; b=1 ; c=3;

    System.out.println(" b x c =" + b*c);
    System.out.println(" a x c ="+ a*c);

    if (a==b){
        System.out.println ("a y b son iguales");
    }
    }
}

NOTA:

Este post es parte de la colección “Java” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *