Questão de Programação — Linguagens de programação — FGV 2026
Programação›Linguagens de programação
Código
fg126228
Banca
FGV
Órgão
AL-GO
Ano
2026
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
O departamento de TI está desenvolvendo um sistema de gerenciamento de pedidos online. O sistema precisa implementar regras de negócios complexas que determinam o status do pedido com base em diferentes condições, como o valor do pedido, o tipo de cliente e a disponibilidade do produto. Durante uma reunião de planejamento, a equipe discutiu a implementação de estruturas de controle para lidar com essas lógicas.Assinale qual das seguintes implementações de estruturas de controle em Java determina corretamente o status de um pedido, considerando que um pedido deve ser considerado "Aprovado" se o total for maior que R$ 500,00 e o cliente for um cliente Vip, ou se o total for menor ou igual a R$ 500,00 e o produto estiver disponível.
Aif (total >= 500 && (cliente.isVip() || produto.isDisponivel())) status = "Aprovado"; else status = "Reprovado";
Bif (total < 500) status = "Reprovado"; else if (cliente.isVip() && produto.isDisponivel()) status = "Aprovado"; else status = "Reprovado";
Cif (total == 500 && cliente.isVip()) status = "Aprovado"; else status = "Reprovado";
Dif (total <= 500 || cliente.isVip()) status = "Aprovado"; else if (produto.isDisponivel()) status = "Aprovado"; else status = "Reprovado";
Eif (total > 500 && cliente.isVip()) status = "Aprovado"; else if (total <= 500 && produto.isDisponivel()) status = "Aprovado"; else status = "Reprovado";
Revelar gabarito e comentário▾
GabaritoE — if (total > 500 && cliente.isVip()) status = "Aprovado"; else if (total <= 500 && produto.isDisponivel()) status = "Aprovado"; else status = "Reprovado";
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Estruturas condicionais em Java
Gabarito: letra E. A alternativa E implementa exatamente a regra de negócio descrita: o pedido é aprovado se (total > 500 e cliente Vip) ou se (total ≤ 500 e produto disponível). As demais alternativas ou trocam operadores lógicos ou adicionam condições extras que distorcem a lógica.
Alternativa A — ❌ Incorreta
Usa total >= 500 (inclui igualdade) e combina cliente.isVip() ou produto.isDisponivel() quando total ≥ 500. Isso faz com que um pedido com total > 500 seja aprovado mesmo sem o cliente ser Vip, desde que o produto esteja disponível — o que contraria a regra.
Alternativa B — ❌ Incorreta
Se total < 500, reprova imediatamente, ignorando a possibilidade de aprovação se o produto estiver disponível. Para total >= 500, exige tanto Vip quanto produto disponível, quando na verdade para total > 500 apenas o Vip é necessário.
Alternativa C — ❌ Incorreta
Só trata o caso exato de total == 500 com cliente Vip, desconsiderando todas as outras faixas de valor.
Alternativa D — ❌ Incorreta
A condição total <= 500 || cliente.isVip() aprova casos em que total ≤ 500 independentemente da disponibilidade do produto (deveria exigir produto disponível). Além disso, no else if, aprova se produto estiver disponível mesmo quando total > 500 e cliente não é Vip — o que também está errado.
Alternativa E — ✅ Correta ⟵ GABARITO
Traduz fielmente a regra: primeiro verifica total > 500 && cliente.isVip(), depois total <= 500 && produto.isDisponivel(). Apenas nessa ordem e com esses operadores a lógica é respeitada.
PEGA ESSA DICA!
Para questões de lógica condicional, traduza a regra em português para operadores booleanos passo a passo. Lembre-se: "ou" vira ||, "e" vira &&. Depois, confira cada alternativa simulando casos de teste.