Operador módulo en Java: funcionalidad y ventajas

Si una división no es exacta, queda un valor residual. Para calcularlo correctamente en tu programa, Java dispone del operador módulo. Es mucho más fiable que las soluciones alternativas y se utiliza principalmente para determinar si los números son pares o impares.

El Modulo Operator en Java

En todos los lenguajes de programación se pueden realizar las cuatro operaciones aritméticas básicas de suma, resta, multiplicación y división y, por ejemplo, utilizar los operadores Java para visualizar y resolver incluso problemas aritméticos extensos. Sin embargo, no solo en el ámbito de la programación existe el riesgo de que no haya resultado entero. Cuando divides dos números enteros, siempre existe la posibilidad de que quede un residuo. Por ejemplo, al dividir 11 entre 4, queda un residuo de 3 (2 x 4 = 8, 11 - 8 = 3). Esto puede provocar problemas al programar.

Web Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Seguro con SSL y protección DDoS
  • Dominio y asesor personal incluidos

Para ello existe una herramienta en Java, el operador módulo, el cual determina y devuelve el valor residual después de dividir dos números. Existen varias situaciones en las que su uso puede ser muy importante en programación. Por ejemplo, puede determinar si un número es par o impar o si es un número primo. Aunque existen otras formas de calcular este residuo, estas a veces pueden alcanzar rápidamente sus límites, como ilustra el ejemplo que presentamos.

¿Para qué se utiliza el operador módulo?

En términos sencillos, la división consiste en comprobar cuántas veces cabe un divisor en un dividendo. El resultado es el cociente. Si tanto el dividendo como el divisor están almacenados en un tipo de dato primitivo de Java int (o Integer), también puedes calcular el residuo sin problemas sin usar el operador módulo de Java. El código sería el siguiente:

public class Main { 
public static void main(String[] args) { 
int dividend = 11; 
int divisor = 4; 
int resto = dividend - (divisor * (dividend / divisor)); 
System.out.println("El resto es: " + resto); 
} 
}
java

El comando Java System.out.println da este resultado:

El resto es: 3
java

Aunque esto es algo complicado, en principio es posible. Sin embargo, se vuelve problemático en cuanto al menos uno de los operandos es de tipo float o double, es decir, un tipo de datos de coma flotante. En este caso obtenemos un resultado diferente para el mismo cálculo:

public class Main { 
public static void main(String[] args) { 
int dividend = 11; 
double divisor = 4; 
double resto = dividend - (divisor * (dividend / divisor)); 
System.out.println("El resto es: " + resto); 
} 
}
java
El resto es: 0,0
java

Sintaxis y funcionalidad del operador módulo de Java

En cambio, el operador módulo de Java siempre muestra el resto exacto. Aunque también realiza la división, no muestra el resultado, sino solo el resto que queda. Se inicia con un signo de porcentaje, por lo que su sintaxis tendrá esta estructura:

Dividend % Divisor
java

Para nuestro ejemplo anterior, el operador módulo de Java funcionaría así:

public class Main { 
public static void main(String[] args) { 
int dividend = 11; 
double divisor = 4; 
double resto = dividend % divisor; 
System.out.println("El resto es: " + resto); 
} 
}
java

El resultado sería:

El resto es: 3.0
java

Determinar si los números son pares o impares

El operador módulo de Java permite averiguar si un número es par o impar. Para ello se utiliza una lógica simple: si se divide cualquier dividendo entre 2 y el resto es 0, el número es par. En caso contrario, el número es impar. Esta suposición se puede ilustrar con una sentencia if-else. Este sería el código para ello:

public class Main { 
public static void main(String[] args) { 
int dividend = 11; 
if (dividend % 2 == 0) { 
System.out.println("El " + dividend + " es un número par."); 
} 
else { 
System.out.println("El " + dividend + " es un número impar."); 
} 
}
java

Como era de esperar, recibimos este resultado:

11 es un número impar.
java

Resto con números negativos

En principio, también se puede determinar el resto si el dividendo o el divisor son negativos. Este es un ejemplo sencillo:

public class Main { 
public static void main(String[] args) { 
int dividend = -11; 
int divisor = 4; 
int resto = dividend % divisor; 
System.out.println("El resto es: " + resto); 
} 
}
java

Como el dividendo es negativo, el resto también será negativo. El resultado es:

El resto es: -3
java

Sin embargo, no siempre es deseable obtener un resultado negativo. Por lo tanto, si se adapta un poco el código, se puede obtener un resto positivo. Para ello, comprueba primero si el resto es menor que 0. Si es así, añade el divisor para obtener un resto positivo. El código sería el siguiente:

public class Main { 
public static void main(String[] args) { 
int dividend = -11; 
int divisor = 4; 
int resto = dividend % divisor; 
System.out.println("El resto antes del cambio es: " + resto); 
while (dividend < 0) dividend += divisor; 
int resto_positivo = dividend % divisor; 
System.out.println("El resto después del cambio es: " + resto_positivo); 
} 
}
java

Obtendremos este resultado:

El resto antes del cambio es: -3 
El resto después del cambio es: 1
java
¿Le ha resultado útil este artículo?
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.
Page top