Início > Programação > Cuidado com o operador “%” !!!

Cuidado com o operador “%” !!!

Todo programador, em algum momento, teve que verificar se um determinado número inteiro ‘n’ era par ou ímpar.

Podemos fazer isso facilmente através das seguintes funções (abaixo uma versão escrita em C++):

eImpar

Ótimo. Vamos testar agora as duas funções para os seguintes valores: 0, 1, 2, -2 e -1.

ePar(0) = true eImpar(0) = false
ePar(1) = false eImpar(1) = true
ePar(2) = true eImpar(2) = false
ePar(-2) = true eImpar(-2) = false
ePar(-1) = false eImpar(-1) = false !!!!!!!

A explicação é que o operador % retorna o mesmo sinal do primeiro operando. Assim:

-1 % 2 == -1 != 1

Fica a lição: da próxima vez que precisar verificar a paridade de um número, use somente a função “ePar()”. 100% garantido! 😛


PS 1: Testei essa dica nas linguagens C, C++ e Java. Em todas, o operador % se comporta como a tabela acima. Acredito que isso seja verdade para praticamente todas as linguagens, apesar de não ter confirmado.

PS 2: Essa dica foi retirada da excelente apresentação “10 coisas que eu odeio em Java”, do professor Rafael Santos. Vale a pena fazer uma visita ao seu site: http://www.lac.inpe.br/~rafael.santos/ Tem muito material interessante lá.

Anúncios
Categorias:Programação
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s

%d blogueiros gostam disto: