Operador Módulo em Java

JavaBeginner
Pratique Agora

Introdução

O operador módulo (Modulo operator) é um operador matemático utilizado para encontrar o resto da divisão de dois números. Este operador é representado pelo símbolo %. Em Java, o operador módulo retorna o resto da divisão do primeiro número pelo segundo número. Este Lab irá guiá-lo através de alguns dos casos de uso deste operador.

Exemplo do Operador Módulo

Neste passo, veremos a sintaxe básica do operador módulo e como ele pode ser usado em variáveis inteiras e de ponto flutuante. Também veremos como ele lida com números negativos.

  1. Crie um novo arquivo chamado ModuloOperatorDemo.java usando o comando touch.
  2. Abra o arquivo em um editor de texto como nano.
  3. Adicione o seguinte código ao arquivo:
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. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
10 % 3 = 1
3 % 10 = 3
10.0 % 3.0 = 1.0
10.0 % 3 = 1.0
-10 % 3 = -1

Necessidade do Operador Módulo

Neste passo, discutiremos por que o operador módulo é necessário ao usar o operador de divisão.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
The remainder is: 1

Quando o Dividendo ou o Divisor não é um Inteiro

Neste passo, veremos como o operador módulo pode lidar com números decimais.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
The remainder is: 0.0
  1. Modifique o código no arquivo da seguinte forma:
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. Salve o arquivo e saia do editor de texto.
  2. Recompile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código agora deve exibir o seguinte:
The remainder is: 1.0

ArithmeticException causada pelo Operador Módulo

Neste passo, veremos como o operador módulo lança uma exceção se o divisor for zero.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte código:
public class ModuloOperatorDemo
{
    public static void main(String[] args)
    {
        System.out.print("The remainder is: " + 10 % 0);
    }
}
  1. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve lançar uma ArithmeticException da seguinte forma:
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at ModuloOperatorDemo.main(ModuloOperatorDemo.java:3)

Encontrar Números Pares

Neste passo, veremos como o operador módulo pode ser usado para verificar se um número é par ou ímpar.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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 + " is even.");
            else
                System.out.println(num + " is NOT even.");
        }
    }
}
  1. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
7 is NOT even.
5 is NOT even.
2 is even.
4 is even.
6 is even.
19 is NOT even.
18 is even.
25 is NOT even.
22 is even.

Converter Segundos em Minutos e Segundos

Neste passo, veremos como o operador módulo pode ser usado para converter segundos em minutos e segundos.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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 + " seconds is equal to " + minutes +" minutes " + remainingSeconds + " seconds");
    }
}
  1. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
401 seconds is equal to 6 minutes 41 seconds

Extraindo Dígitos Individuais de um Inteiro

Neste passo, veremos como o operador módulo pode ser usado para extrair dígitos individuais de um número.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
4 6 0 2 1 9 7

Repetir algo a cada 'n' vezes

Neste passo, veremos como o operador módulo pode ser usado para repetir uma ação a cada n vezes.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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("Do Something");
        }
    }
}
  1. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
Do Something
Do Something
Do Something
Do Something
Do Something
Do Something

Restringir um Número a um Intervalo Específico

Neste passo, veremos como o operador módulo pode ser usado para limitar um número a um intervalo específico.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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 + " occurs on " + dayName1);
        System.out.println(dayOfTheMonth2 + " occurs on " + dayName2);
    }
}
  1. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
21 occurs on Sunday
12 occurs on Friday

Tornar um número completamente divisível por outro número

Neste passo, veremos como o operador módulo pode ser usado para tornar um número completamente divisível por outro número.

  1. Abra o arquivo ModuloOperatorDemo.java em um editor de texto.
  2. Remova o código existente e substitua-o pelo seguinte 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("The minimum number to subtract is: " + remainder);
        System.out.println("The number after subtraction is: " + X);
    }
}
  1. Salve o arquivo e saia do editor de texto.
  2. Compile o código usando o comando javac ModuloOperatorDemo.java.
  3. Execute o código usando o comando java ModuloOperatorDemo.
  4. O código deve exibir o seguinte:
The minimum number to subtract is: 2
The number after subtraction is: 289

Resumo

O operador módulo é um operador matemático usado para encontrar o resto da divisão de dois números. Neste laboratório, cobrimos vários casos de uso do operador módulo, como verificar se um número é par, converter segundos em minutos e segundos, extrair dígitos individuais, repetir uma ação a cada n-ésima vez, restringir um número a um intervalo específico e tornar um número completamente divisível por outro número. Lembre-se de que, ao usar o operador módulo, o divisor não pode ser zero, pois isso lançará uma ArithmeticException.