Médio Java

Verificador de paridade e curto-circuito

Enunciado

Escreva um programa que verifique se um número inteiro é par e positivo usando operadores lógicos com curto-circuito. O programa deve imprimir true se ambas as condições forem verdadeiras, caso contrário false. Use o operador % para testar paridade.

Requisitos

  • Declare uma variável int numero = 10.
  • Use numero % 2 == 0 para verificar se é par.
  • Use numero > 0 para verificar se é positivo.
  • Combine com && e imprima o resultado booleano.

Código inicial

public class VerificadorParidade {
    public static void main(String[] args) {
        int numero = 10;
        // Verifique e imprima
    }
}

Saída esperada

true
Ver dica

A expressão numero % 2 == 0 && numero > 0 já retorna um boolean. Imprima diretamente.

Mostrar solução
public class VerificadorParidade {
    public static void main(String[] args) {
        int numero = 10;
        boolean ehParEPositivo = (numero % 2 == 0) && (numero > 0);
        System.out.println(ehParEPositivo);
    }
}

Passo a passo

  1. Declaramos numero com valor 10.
  2. Calculamos numero % 2 que resulta em 0 (resto da divisão por 2).
  3. Comparamos 0 == 0, resultando em true.
  4. Avaliamos numero > 0 (10 > 0), que também é true.
  5. Usamos && para combinar: true && true resulta em true.
  6. Imprimimos o valor booleano true.

Por que funciona

O operador % retorna o resto da divisão inteira, permitindo testar paridade. O operador && só retorna true se ambos os operandos forem true. Além disso, && tem curto-circuito: se o primeiro operando for false, o segundo nem é avaliado, o que é útil para evitar erros (ex.: divisão por zero).

Erros comuns

  • Usar & em vez de &&: & avalia ambos os lados sempre, podendo causar exceções desnecessárias. Prefira &&.
  • Esquecer parênteses: numero % 2 == 0 && numero > 0 é avaliado corretamente devido à precedência, mas parênteses deixam claro.
  • Comparar com = em vez de ==: numero % 2 = 0 causaria erro de compilação.

Outra forma de resolver

Usar um if para imprimir true ou false explicitamente:

if (numero % 2 == 0 && numero > 0) {
    System.out.println(true);
} else {
    System.out.println(false);
}

Mas a forma direta é mais concisa.

Saída esperada

true