A resposta curta
Zero é par. Isso é definição matemática, não opinião. Um número é par quando é divisível por 2 sem resto, e 0 dividido por 2 é exatamente 0. Não sobra nada. Fechou.
Então, zero é par ou ímpar de verdade?
Muita gente trava na hora de explicar isso, porque a intuição fala "zero não é nada, então não serve pra conta". A intuição tá errada aqui, mas não se preocupe, isso é comum. O problema é que par e ímpar são conceitos construídos sobre divisibilidade, não sobre quantidade visível. Zero entra na conta sim. O que eu vejo todo dia é gente confunadindo zero com vazio. Em programação, em planilhas, em lógica de negócio. A diferença é brutal e causa bug do tipo "por que meu sistema acha que isso é ímpar?".
Como testar na prática
A forma mais direta é usar o operador módulo. Em praticamente qualquer linguagem, expressão como 0 % 2 retorna zero. Se o resto da divisão por 2 for zero, o número é par. Ponto. Não precisa de condição extra, não precisa de exceção especial pra zero. Eu já perdi horas rastreando um erro num sistema de escalas onde o programador tinha colocado uma verificação do tipo "se for menor que 1, trata como caso especial". Isso fez zero ser classificado como ímpar em certas rotinas. A correção foi simples: remover a exceção e deixar o módulo falar sozinho. O código ficou menor e mais previsível.
O que os iniciantes costumam errar
A primeira armadilha é achar que zero é neutro e, por isso, escaparia das classificações de par e ímpar. Não é assim que a aritmética funciona. Par e ímpar cobrem todos os inteiros. Não existe brecha. A segunda é pensar que zero é "menos que um" e, portanto, não se encaixa. O conceito de paridade não exige que o número seja positivo. Inteiros negativos também têm paridade definida, e zero ocupa a posição exata entre -1 e 1, mantendo a regularidade da sequência: ímpar, par, ímpar, par... e no meio vem o zero, par.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Por que isso importa no dia a dia
Se você trabalha com lógica de programação, layout em grade, divisão de dados, números de lote, paginação ou qualquer coisa que alterne entre dois estados, tratar zero como ímpar ou como inválido vai gerar off-by-one e inconsistência. O custo real não é conceitual, é operacional. Eu vi um relatório financeiro ser gerado com linhas faltando porque uma função de agrupamento ignorava zero como par e pularava a primeira coluna. Se você quer confirmar rapidinho, abre uma calculadora ou uma shell e digite algo como 0 % 2 == 0. Volta verdadeiro. Pronto.
Existe ainda o ponto de vista da sequência de Fibonacci, onde termos pares e ímpares se alternam e o termo zero é conteado como par. A propriedade se mantém. Se alguém tentar argumentar que zero quebra o padrão, mostre que ele na verdade preserva o padrão. É o que torna a definição útil.
Quando a coisa complica
Em tipos flutuantes, a comparação exata com zero pode ser traiçoeira devido a precisão finita. Se o valor veio de um cálculo numérico e não é estritamente zero, o módulo pode não retornar zero exato. Nesse cenário, a solução prática é arredondar ou comparar com uma tolerância pequena antes de decidir a paridade. Eu uso epsilon da ordem de 1e-9 em rotinas onde dados vêm de medição. Outro cenário comum é em validações de formulário onde o campo pode estar vazio. Vazio não é zero. Vazio precisa ser tratado separadamente, senão você acaba classificando um campo não preenchido como par só porque converteu para inteiro e recebeu zero. Separe null de zero desde o início.
Resumo direto
Se a dúvida é simplesmente zero é par ou ímpar, a resposta é par. A justificativa é a definição padrão de divisibilidade por 2. O que realmente faz diferença é aplicar essa regra de forma consistente em código e em modelos de dados, sem criar exceções desnecessárias para zero. Quando você para de tratar zero como caso especial, perde bugs e ganha clareza.