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 == 0para verificar se é par. - Use
numero > 0para 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
- Declaramos
numerocom valor 10. - Calculamos
numero % 2que resulta em 0 (resto da divisão por 2). - Comparamos
0 == 0, resultando emtrue. - Avaliamos
numero > 0(10 > 0), que também étrue. - Usamos
&¶ combinar:true && trueresulta emtrue. - 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 = 0causaria 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