DEV Community

Cover image for Como saber se um número é par ou ímpar em JavaScript?
Dedicio Coelho
Dedicio Coelho

Posted on

1

Como saber se um número é par ou ímpar em JavaScript?

As vezes é necessário saber, via programação, se um número é par ou ímpar. Mas como fazer isso em JavaScript?

Método 1

const isOddOrEven = (number) => {
  return number % 2 ? 'Is Odd!' : 'Is Even!';
}

console.log(isOddOrEven(3)); // Is Odd!
Enter fullscreen mode Exit fullscreen mode

Nesse método, testamos a divisão por 2 do número passado, usando o operador %, que em vez de retornar o resultado de uma divisão, ele retorna o resto.

Qual a sacada? Todos os números pares são divisíveis por 2, ou seja, o resto da divisão de um número par por 2 é sempre 0.

Então caso essa operação retorne algum valor acima de 0, o número passado é ímpar.

Método 2

const isOddOrEven = (number) => {
  return value & 1 ? 'Is Odd!' : 'Is Even!';
}

console.log(isOddOrEven(3)); // Is Odd!
Enter fullscreen mode Exit fullscreen mode

Nesse método, utilizando do operador &, que é um operador JavaScript da categoria bitwise ou "bit a bit".

Essa categoria trabalha com os valores no formato de base 2, ou seja, binários. Aquelas representações em 1s e 0s. (Ex: valor 5 em decimal é igual a 101 em binário)

Para operação to tipo bit a bit, o JavaScript converte por padrão todos os operandos para inteiros de 32 bits (Ex: 10100000000000000110000000000001)

Detalhe: caso o número convertido seja maior que 32 bits, os bits mais significativos são descartados, então não é recomendável usar operações bit a bit no JavaScript caso necessite usar números muito grandes, como cálculos com números primos.

Agora voltando a lógica do método...

O operador & retorna 1 para cada posição de bit em que ambos os operandos tinham um bit 1.

Qual a sacada? Estamos comparando ali os números com o número 1, que em binário seria 00000000000000000000000000000001, ou seja, apenas os números ímpares possuem o primeiro bit com valor 1, que é o único bit do número 1_(decimal)_ que também tem valor 1.

É isso!

São apenas dois métodos simples, mas o que eu queria passar aqui é a lógica de como resolver o problema de saber se um número é par ou ímpar.

Você também vai querer adicionar outras validações e muitos outros dilemas para deixar seu método super completo e a prova de quebra.

Mas o legal é entender como foram pensadas as lógicas para resolver problemas em programação, que podem ajudar na hora de resolver aquele seu problema de código que não é tão simples ou é muito específico ao contexto em que só você mexe.

Boa sorte!


Outros links:

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

SurveyJS custom survey software

JavaScript UI Library for Surveys and Forms

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

View demo

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay