Resumo : neste tutorial, você aprenderá sobre o operador de resto do JavaScript ( %
) para obter o resto de um número dividido por outro número.
Introdução ao operador restante do JavaScript
JavaScript usa the %
para representar o operador restante. O operador resto retorna o resto que sobra quando um valor é dividido por outro valor.
Aqui está a sintaxe do operador restante:
dividend % divisor
O seguinte mostra a equação para o restante:
dividend = divisor * quotient + remainder
where |remainder| < |divisor|
Nesta equação, dividend
, divisor
, quotient
e remainder
são todos números inteiros. O sinal do remainder
é igual ao sinal do dividend
.
O sinal do remainder
é igual ao sinal do dividend
.
Exemplos de operadores de restante JavaScript
Vejamos alguns exemplos de uso do operador restante do JavaScript.
1) Usando o operador resto com um exemplo de dividendo positivo
O exemplo a seguir mostra como usar o operador resto com um dividendo positivo:
let remainder = 5 % -2;
console.log(remainder); // 1
remainder = 5 % 2;
console.log(remainder); // 1
Linguagem de código: JavaScript ( javascript )
2) Usando o operador resto com um exemplo de dividendo negativo
O exemplo a seguir usa o operador resto com um dividendo negativo:
let remainder = -5 % 3;
console.log(remainder); // -2
remainder = -5 % -3;
console.log(remainder); // -2
Linguagem de código: JavaScript ( javascript )
3) Usando os valores especiais do operador restante
Se um dividendo for an Infinity
e um divisor for um número finito, o resto será NaN
. Por exemplo:
let remainder = Infinity % 2;
console.log(remainder); // NaN
Linguagem de código: JavaScript ( javascript )
Se um dividendo é um número finito e um divisor é zero, o resto é NaN
:
let remainder = 10 % 0;
console.log(remainder); // NaN
Linguagem de código: JavaScript ( javascript )
Se o dividendo e o divisor forem Infinity
, o resto será NaN
:
let remainder = Infinity % Infinity;
console.log(remainder); // NaN
Linguagem de código: JavaScript ( javascript )
Se um dividendo for um número finito e o divisor for um Infinity
, o resto é o dividendo. Por exemplo:
let remainder = 10 % Infinity;
console.log(remainder); // 10
Linguagem de código: JavaScript ( javascript )
Se o dividendo for zero e o divisor for diferente de zero, o resto será zero:
let remainder = 0 % 10;
console.log(remainder); // 0
Linguagem de código: JavaScript ( javascript )
Se o dividendo ou o divisor não for um número, ele será convertido em um número usando a Number()
função e aplicadas as regras acima. Por exemplo:
let remainder = '10' % 3;
console.log(remainder); // 1
Linguagem de código: JavaScript ( javascript )
Usando o operador de resto para verificar se um número é ímpar
Para verificar se um número é ímpar, você usa o operador de resto ( %
) como no exemplo a seguir:
let num = 13;
let isOdd = num % 2;
Linguagem de código: JavaScript ( javascript )
Neste exemplo, se num
for um número ímpar, o resto será um. Mas se num
for um número par, o resto é zero.
Posteriormente, você aprenderá como definir uma função que retorna true
se um número for ímpar ou false
algo assim:
function isOdd(num) {
return num % 2;
}
Linguagem de código: JavaScript ( javascript )
Ou usando uma função de seta no ES6 :
const isOdd = (num) => num % 2;
Linguagem de código: JavaScript ( javascript )
Operador Restante vs Módulo
Em JavaScript, o operador restante (%) não é o operador módulo.
Se você trabalha com Python, pode descobrir que %
representa o operador módulo nesta linguagem. No entanto, este não é o caso em JavaScript.
Para obter um módulo em JavaScript, você usa a seguinte expressão:
((dividend % divisor) + divisor) % divisor
Ou envolva-o em uma função:
const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;
Linguagem de código: JavaScript ( javascript )
Se a divisão e o divisor tiverem o mesmo sinal, os operadores de resto e módulo retornarão o mesmo resultado. Caso contrário, eles retornam resultados diferentes.
Por exemplo:
const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;
// dividen and divisor have the same sign
console.log('remainder:', 5 % 3); // 2
console.log('modulo:', mod(5, 3)); // 2
// dividen and divisor have the different signs
console.log('remainder:', -5 % 3); // -2
console.log('modulo:', mod(-5, 3)); // 1
Linguagem de código: JavaScript ( javascript )
Saída:
remainder: 2
modulo: 2
remainder: -2
modulo: 1
Linguagem de código: HTTP ( http )
Resumo
- Use o operador restante do JavaScript (
%
) para obter o restante de um valor dividido por outro valor.