A operação de resto da divisão, também conhecida como operação módulo, é uma operação matemática que retorna o resto da divisão de um número por outro. O operador de resto é %
Na matemática, quando dividimos um número por outro, geralmente obtemos um quociente e, possivelmente, um resto. O operador % em Java retorna apenas o resto dessa divisão.
Por exemplo, quando dividimos 17 por 5:
Em Java, escrevemos:
17 / 5 resulta em 3 (divisão inteira)17 % 5 resulta em 2 (resto da divisão)
public class ExemplosResto {
public static void main(String[] args) {
// Exemplos básicos de operações de resto
int a = 17;
int b = 5;
int resto = a % b;
System.out.println(a + " dividido por " + b + " tem resto " + resto);
// Mais exemplos
System.out.println("10 % 3 = " + (10 % 3)); // Resultado: 1
System.out.println("15 % 4 = " + (15 % 4)); // Resultado: 3
System.out.println("25 % 5 = " + (25 % 5)); // Resultado: 0 (divisão exata)
System.out.println("7 % 10 = " + (7 % 10)); // Resultado: 7 (quando o dividendo é menor, o resto é o próprio dividendo)
// Também funciona com números decimais, mas é menos comum
System.out.println("10.5 % 3.2 = " + (10.5 % 3.2)); // Resultado: 0.8999999999999995
}
}
17 dividido por 5 tem resto 2
10 % 3 = 1
15 % 4 = 3
25 % 5 = 0
7 % 10 = 7
10.5 % 3.2 = 0.8999999999999995
A operação de resto da divisão pode ser usada para se determinar se um número é par ou ímpar.
Se um número dividido por 2, tem resto 0, então é par. Se o resto da divisão for 1, é impar.
public class ParImpar {
public static void main(String[] args) {
// Verificando se um número é par ou ímpar
int numero1 = 10;
int numero2 = 15;
int numero3 = 22;
int numero4 = 33;
// Calculando o resto da divisão por 2
int resto1 = numero1 % 2;
int resto2 = numero2 % 2;
int resto3 = numero3 % 2;
int resto4 = numero4 % 2;
// Verificando os resultados
System.out.println(numero1 + " % 2 = " + resto1 + " - " + (resto1 == 0 ? "Par" : "Ímpar"));
System.out.println(numero2 + " % 2 = " + resto2 + " - " + (resto2 == 0 ? "Par" : "Ímpar"));
System.out.println(numero3 + " % 2 = " + resto3 + " - " + (resto3 == 0 ? "Par" : "Ímpar"));
System.out.println(numero4 + " % 2 = " + resto4 + " - " + (resto4 == 0 ? "Par" : "Ímpar"));
// Usando o resultado diretamente em uma condição
int novoNumero = 27;
if (novoNumero % 2 == 0) {
System.out.println("\n" + novoNumero + " é par");
} else {
System.out.println("\n" + novoNumero + " é ímpar");
}
}
}
10 % 2 = 0 - Par
15 % 2 = 1 - Ímpar
22 % 2 = 0 - Par
33 % 2 = 1 - Ímpar
27 é ímpar
Dica: O operador % é muito útil para verificar divisibilidade. Se a % b == 0, significa que a é divisível por b sem deixar resto.
// Verifica se é par
if (numero % 2 == 0) {
// é par
} else {
// é ímpar
}
// Verifica se é divisível por 3
if (numero % 3 == 0) {
// é divisível por 3
}
// Para fazer algo a cada 5 iterações
if (contador % 5 == 0) {
// ação a cada 5 iterações
}
// Alterna entre dois valores int valor = (indice % 2 == 0) ? valor1 : valor2;
O operador % também é útil para converter unidades de tempo, como segundos para horas, minutos e segundos.
public class ConversorTempo {
public static void main(String[] args) {
// Total de segundos
int totalSegundos = 3945; // 1 hora, 5 minutos e 45 segundos
// Calculando horas, minutos e segundos
int horas = totalSegundos / 3600; // 1 hora
int restoHoras = totalSegundos % 3600; // 345 segundos restantes
int minutos = restoHoras / 60; // 5 minutos
int segundos = restoHoras % 60; // 45 segundos restantes
// Exibindo o resultado
System.out.println(totalSegundos + " segundos equivalem a:");
System.out.println(horas + " hora(s), " + minutos + " minuto(s) e " + segundos + " segundo(s)");
// Método alternativo (mais direto)
int h = totalSegundos / 3600;
int m = (totalSegundos % 3600) / 60;
int s = totalSegundos % 60;
System.out.println("\nUsando método alternativo:");
System.out.println(h + " hora(s), " + m + " minuto(s) e " + s + " segundo(s)");
}
}
3945 segundos equivalem a:
1 hora(s), 5 minuto(s) e 45 segundo(s)
Usando método alternativo:
1 hora(s), 5 minuto(s) e 45 segundo(s)
Teste seus conhecimentos sobre operação de resto da divisão:
Reforce o conteúdo desta aula com mais dois exercícios práticos: