Operadores de comparação em programação prática
A diferença entre operador maior e operador menor é algo que todo desenvolvedor encontra no primeiro mês de trabalho. Não tem mistério, mas tem detalhe que a maioria dos tutoriais ignora. O operador maior (>) verifica se um valor à esquerda é estritamente superior ao da direita. O operador menor (<) faz o inverso. Os equivalentes com igualdade são >= e <=. Isso você encontra em qualquer material introdutório. O que não encontram é o problema real.
Eu estava refactorizando um sistema de cálculo de bônus em uma empresa onde trabalhei. O código usava > quando deveria usar >= para uma faixa salarial mínima. Isso fez com que funcionários com exatamente o valor de corte fossem excluídos do benefício. Ninguém percebeu porque os testes de unidade testavam valores acima da linha, nunca o valor exato. A correção levou três dias porque tinha que validar retroativamente quantos colaboradores eram afetados. Esse tipo de erro não aparece em lint nem em testes automáticos simples.
Como implementar atividade maior e menor corretamente
A lógica é direta. Você pega dois valores, compara, e o resultado é booleano. O ponto onde as pessoas erram é na ordenação de cadeias de comparações e na mistura de tipos. Em Python, por exemplo:
exemplo_maior_menor.py x = 10
y = 7
resultado_maior = x > y
resultado_menor = x < y
print(resultado_maior, resultado_menor)
👉 Clique no botão abaixo para saber mais sobre o assunto!
Isso imprime True False. Nada extraordinário. O problema começa quando você encadeia: if 0 < x
100:
Em Python isso funciona como esperado. Em JavaScript, 0 < x 100 é interpretado de forma completamente diferente e gera resultados inesperados. Sempre escreva como 0 < x && x 100 em JS para evitar dor de cabeça. Outro detalhe prático: comparação de floats. Operadores maiores e menores com números de ponto flutuante podem falhar por precisão. 0.1 + 0.2 > 0.3 retorna False em várias linguagens porque o resultado da soma é algo como 0.30000000000000004. A solução é usar uma tolerância, seja com math.isclose() em Python ou funções similares na sua stack.
Se você está lidando com valores monetários, evite floats completamente. Use inteiros (centavos) ou bibliotecas decimais. Isso elimina uma classe inteira de bugs relacionados a operadores de comparação. A performance dos operadores de comparação em si é irrelevante na grande maioria dos casos. Eles são O(1). O que importa é garantir que os tipos sejam compatíveis antes de comparar. Comparar string com número em linguagem fracamente tipada gera coerção silenciosa que muda o resultado final.
Não existe fórmula mágica. É só prestar atenção aos limites exatos e aos tipos de dado que estão sendo comparados. O resto é prática.