1.g.1 - Clasificar, reconocer y utilizar operadores en Java

Objetivo

Clasificar, reconocer y utilizar en expresiones los operadores del lenguaje Java.

1. Contenidos

Un operador es un símbolo que representa una operación a realizar con variables y genera un resultado. Es importante identificar los tipos de datos con los que operan los operadores y el tipo de dato del resultado.

Existen operadores de varios tipos:

1.1 Operadores Aritméticos

Realizan operaciones con tipos numéricos (int, double, float, etc.) y devuelven un resultado de tipo numérico.

Por ejemplo, si a = 15 y b = 4:

OperadorEjemploResultadoDescripción
+a + b19Suma (también concatena Strings)
-a - b11Resta
*a * b60Multiplicación
/a / b3.75División con Float/Double
/a / b3 División Entera. ¡Trunca el resultado!
%a % b3Módulo (resto de la división)

1.2 Operadores de Asignación

Asignan valor a una variable. Valor inicial de x = 10:

OperadorEjemploEquivale aResultado
=x = 10 x = 10
+=x += 5x = x + 5x = 15
-=x -= 3x = x - 3x = 7
*=x *= 2x = x * 2x = 20
/=x /= 2x = x / 2x = 5
%=x %= 3x = x % 3x = 1

1.3 Operadores de Comparación

Comparan dos datos (normalmente numéricos) y devuelven un valor booleano (true o false).

OperadorNombreEjemploResultadoExplicación
==Igualnum1 == num2trueIgual en valor
!=Diferentenum1 != num3trueDiferente en valor
<Menor quenum1 < num3trueMenor que
>Mayor quenum1 > num3falseMayor que
<=Menor o igualnum1 <= num3trueMenor o igual que
>=Mayor o igualnum3 >= num1trueMayor o igual que

1.4 Operadores Lógicos

Operan con valores booleanos y devuelven valores booleanos.

OperadorNombreEjemploResultadoDescripción
&&ANDtrue && falsefalseY lógico
||ORtrue || falsetrueO lógico
!NOT!truefalseNO lógico (negación)

1.5 Operadores de Incremento y Decremento

Valor inicial de contador = 5:

OperadorNombreEjemploResultadoExplicación
++varPre-incremento++contadorcontador = 6Incrementa, luego devuelve
var++Post-incrementocontador++contador = 6Devuelve, luego incrementa
--varPre-decremento--contadorcontador = 4Decrementa, luego devuelve
var--Post-decrementocontador--contador = 4Devuelve, luego decrementa

Importante: El pre-incremento cambia el valor antes de usarlo en la expresión; el post-incremento lo usa primero y luego cambia el valor.

1.6 Operadores para String y Character

Los datos de tipo String y Character pueden concatenarse con el operador +:


String a = "Hola";
String b = "Mundo";
Character c = ' ';
String d = a + c + b;   // "Hola Mundo"
				

También puede utilizarse el operador de asignación y concatenación +=:


String saludo = "Hola";
saludo += ' ';
saludo += "Mundo";   // ahora saludo vale "Hola Mundo"
				

Precaución: La concatenación con números puede dar resultados inesperados: "El total es " + 5 + 3 produce "El total es 53", pero 5 + 3 + " es el total" produce "8 es el total".

1.7 Operador Ternario (condicional)

Es el único operador que trabaja con tres operandos. Sintaxis: condición ? valor_si_true : valor_si_false


Integer edad = 18;
String mensaje = (edad >= 18) ? "Eres mayor de edad" : "Eres menor de edad";
System.out.println(mensaje);
    

2. Ejercicios

2.1 Calculadora de Operadores (Nivel básico)

Crea una clase llamada CalculadoraOperadores que realice las siguientes operaciones con dos números enteros a = 25 y b = 7:

  1. Muestra la suma, resta, multiplicación, división y módulo.
  2. Realiza una asignación compuesta: a += b y muestra el nuevo valor de a.
  3. Compara a con b usando >, < y ==, mostrando un mensaje como "¿25 es mayor que 7? true".
  4. Usa un operador lógico: muestra el resultado de (a > b) && (b != 0).
  5. Crea un String que sea la concatenación de los valores de a y b separados por un guión.

Ejemplo de salida esperada:


Suma: 32
Resta: 18
Multiplicación: 175
División: 3.5714285714285716
Módulo: 4
a += b -> a = 32
¿32 es mayor que 7? true
¿32 es menor que 7? false
¿32 es igual a 7? false
(32 > 7) && (7 != 0) = true
Concatenación: "32-7"
				

2.2 El Reloj Digital y la Lógica (Nivel intermedio)

Crea una clase llamada RelojLogico que simule un reloj digital con horas (0-23), minutos (0-59) y segundos (0-59). El programa debe:

  1. Declarar variables hora, minuto, segundo con valores iniciales (por ejemplo, 23, 58, 45).
  2. Usar el operador módulo (%) y división entera (/) para avanzar un segundo (incrementar y ajustar minutos/horas si es necesario).
  3. Mostrar la hora en formato HH:MM:SS.
  4. Usar operadores de comparación y lógicos para determinar si es medianoche (00:00:00), mediodía (12:00:00) o hora punta (entre 7:00:00 y 9:00:00 o entre 18:00:00 y 20:00:00). Muestra un mensaje adecuado.
  5. Usar el operador ternario ? : para mostrar "Hora válida" o "Hora inválida" según si los valores están dentro de los rangos correctos.

Pista para avanzar un segundo:


segundo++;
if (segundo == 60) {
    segundo = 0;
    minuto++;
    if (minuto == 60) {
        minuto = 0;
        hora = (hora + 1) % 24;
    }
}
				

Extra: Haz que el reloj avance 3661 segundos (1 hora, 1 minuto y 1 segundo) desde la hora inicial y muestra el resultado final junto con las comprobaciones de medianoche/mediodía/hora punta.

3. Bibliografía