Operador módulo en Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

El operador módulo es un operador matemático que se utiliza para encontrar el residuo de la división de dos números. Este operador está representado por el símbolo %. En Java, el operador módulo devuelve el residuo de dividir el primer número entre el segundo número. Esta práctica te guiará a través de algunos de los casos de uso de este operador.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/variables("Variables") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/BasicSyntaxGroup -.-> java/while_loop("While Loop") java/BasicSyntaxGroup -.-> java/output("Output") java/DataStructuresGroup -.-> java/arrays("Arrays") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") subgraph Lab Skills java/operators -.-> lab-117974{{"Operador módulo en Java"}} java/variables -.-> lab-117974{{"Operador módulo en Java"}} java/if_else -.-> lab-117974{{"Operador módulo en Java"}} java/for_loop -.-> lab-117974{{"Operador módulo en Java"}} java/while_loop -.-> lab-117974{{"Operador módulo en Java"}} java/output -.-> lab-117974{{"Operador módulo en Java"}} java/arrays -.-> lab-117974{{"Operador módulo en Java"}} java/exceptions -.-> lab-117974{{"Operador módulo en Java"}} end

Ejemplo del operador módulo

En este paso, veremos la sintaxis básica del operador módulo y cómo se puede utilizar en variables enteras y de punto flotante. También veremos cómo maneja los números negativos.

  1. Crea un nuevo archivo llamado ModuloOperatorDemo.java usando el comando touch.
  2. Abre el archivo en un editor de texto como nano.
  3. Agrega el siguiente código al archivo:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        System.out.println("10 % 3 = " + 10 % 3);
        System.out.println("3 % 10 = " + 3 % 10);
        System.out.println("10.0 % 3.0 = " + 10.0 % 3.0);
        System.out.println("10.0 % 3 = " + 10.0 % 3);
        System.out.println("-10 % 3 = " + -10 % 3);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
10 % 3 = 1
3 % 10 = 3
10.0 % 3.0 = 1.0
10.0 % 3 = 1.0
-10 % 3 = -1

Necesidad del operador módulo

En este paso, discutiremos por qué se necesita el operador módulo al utilizar el operador de división.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int dividend = 10;
        int divisor = 3;
        int remainder = dividend - (divisor * (dividend/divisor));
        System.out.print("The remainder is: " + remainder);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
The remainder is: 1

Cuando el dividendo o el divisor no es un entero

En este paso, veremos cómo el operador módulo puede manejar números decimales.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        double dividend = 10;
        int divisor = 3;
        double remainder = dividend - (divisor * (dividend/divisor));
        System.out.print("The remainder is: " + remainder);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
The remainder is: 0.0
  1. Modifica el código en el archivo de la siguiente manera:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        double dividend = 10;
        int divisor = 3;
        double remainder = dividend % divisor;
        System.out.print("The remainder is: " + remainder);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Vuelve a compilar el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. Ahora el código debe mostrar la siguiente salida:
The remainder is: 1.0

Excepción ArithmeticException por el operador módulo

En este paso, veremos cómo el operador módulo lanza una excepción si el divisor es cero.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        System.out.print("The remainder is: " + 10 % 0);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe lanzar una excepción ArithmeticException de la siguiente manera:
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at ModuloOperatorDemo.main(ModuloOperatorDemo.java:3)

Encontrar números pares

En este paso, veremos cómo se puede utilizar el operador módulo para comprobar si un número es par o impar.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int[] arr = {7, 5, 2, 4, 6, 19, 18, 25, 22};
        for(int i=0; i<arr.length; i++)
        {
            int num = arr[i];
            if((num % 2) == 0)
                System.out.println(num + " es par.");
            else
                System.out.println(num + " NO es par.");
        }
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
7 NO es par.
5 NO es par.
2 es par.
4 es par.
6 es par.
19 NO es par.
18 es par.
25 NO es par.
22 es par.

Convertir segundos a minutos y segundos

En este paso, veremos cómo se puede utilizar el operador módulo para convertir segundos en minutos y segundos.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int seconds = 401;
        int minutes = seconds / 60;
        int remainingSeconds = seconds % 60;
        System.out.print(seconds + " segundos es igual a " + minutes + " minutos " + remainingSeconds + " segundos");
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
401 segundos es igual a 6 minutos 41 segundos

Obtener dígitos individuales de un entero

En este paso, veremos cómo se puede utilizar el operador módulo para extraer dígitos individuales de un número.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int num = 7912064;
        while(num > 0)
        {
            int lastDigit = num % 10;
            num = num / 10;
            System.out.print(lastDigit + " ");
        }
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
4 6 0 2 1 9 7

Repetir algo cada n-ésima vez

En este paso, veremos cómo se puede utilizar el operador módulo para repetir una acción cada n-ésima vez.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        for(int i = 1; i <= 30; i++)
        {
            if(i % 5 == 0)
                System.out.println("Haz algo");
        }
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
Haz algo
Haz algo
Haz algo
Haz algo
Haz algo
Haz algo

Restringir un número a un cierto rango

En este paso, veremos cómo se puede utilizar el operador módulo para limitar un número a un cierto rango.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        String[] dayNames = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
        int dayOfTheMonth1 = 21;
        String dayName1 = dayNames[(dayOfTheMonth1 - 1) % 7];
        int dayOfTheMonth2 = 12;
        String dayName2 = dayNames[(dayOfTheMonth2 - 1) % 7];

        System.out.println(dayOfTheMonth1 + " ocurre el " + dayName1);
        System.out.println(dayOfTheMonth2 + " ocurre el " + dayName2);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
21 ocurre el domingo
12 ocurre el viernes

Hacer que un número sea completamente divisible por otro número

En este paso, veremos cómo se puede utilizar el operador módulo para hacer que un número sea completamente divisible por otro número.

  1. Abre el archivo ModuloOperatorDemo.java en un editor de texto.
  2. Elimina el código existente y reemplázalo con el siguiente código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        int X = 291;
        int Y = 17;

        int remainder = X % Y;
        X = X - remainder;
        System.out.println("El número mínimo que se debe restar es: " + remainder);
        System.out.println("El número después de la resta es: " + X);
    }
}
  1. Guarda el archivo y sale del editor de texto.
  2. Compila el código usando el comando javac ModuloOperatorDemo.java.
  3. Ejecuta el código usando el comando java ModuloOperatorDemo.
  4. El código debe mostrar la siguiente salida:
El número mínimo que se debe restar es: 2
El número después de la resta es: 289

Resumen

El operador módulo es un operador matemático que se utiliza para encontrar el residuo de la división de dos números. En este laboratorio, cubrimos varios casos de uso del operador módulo, como comprobar si un número es par, convertir segundos a minutos y segundos, extraer dígitos individuales, repetir una acción cada n-ésima vez, limitar un número a un cierto rango y hacer que un número sea completamente divisible por otro número. Tenga en cuenta que al usar el operador módulo, el divisor no puede ser cero, ya que generará una ArithmeticException.