Pular para o conteúdo principal

Questão de Programação — JSP (JavaServer Pages) — FCC 2023

ProgramaçãoJSP (JavaServer Pages)
Código
fc070090
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Área: Apoio Especializado - Tecnologia da Informação
Um Analista está encarregado de ministrar um treinamento e a regra de negócio para aprovação está descrita abaixo.

Serão aprovados alunos com média maior ou igual a 8 e com faltas abaixo de 25% da quantidade de aulas.

Considere o método criado com recursos da plataforma Java, em uma aplicação que utiliza JSP, abaixo.


public String verificarStatus(int qtdAulas, int qtdFaltas, double media){

if (  I   ) {
     return "Aprovado";
 } else {
     return "Reprovado";
  }
}


Para a correta implementação da regra de negócio, a lacuna I deve ser corretamente preenchida por:
  1. Amedia >= 8 || qtdFaltas < qtdAulas * 25/100
  2. Bmedia <= 8 || qtdFaltas < qtdAulas * 25/100
  3. Cmedia >= 8 AND qtdFaltas <= qtdAulas * 0.25
  4. Dmedia >= 8 && qtdFaltas < qtdAulas * 0.25
  5. Emedia >= 8 & qtdFaltas <= qtdAulas * 25/100
Revelar gabarito e comentário

GabaritoD — media >= 8 && qtdFaltas < qtdAulas * 0.25

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”.

Java: Operadores lógicos e aritmética inteira em condicional

Gabarito: letra D. A regra de negócio exige duas condições simultâneas (AND): média >= 8 E faltas < 25% das aulas. A alternativa D usa && (AND lógico em Java), < (estritamente menor) e 0.25 (double), atendendo corretamente. As demais falham no operador lógico (usam || - OR), no operador relacional (<= em vez de <), ou na aritmética inteira (25/100 resulta em 0, zerando o limite de faltas).

Alternativa A — ❌ Incorreta

Usa || (OR) em vez de AND. Com OR, bastaria uma das condições ser verdadeira para aprovar, contrariando a regra de negócio que exige ambas.

Alternativa B — ❌ Incorreta

Além de usar || (OR), inverte a condição da média para <= 8, o que aprovaria alunos com média até 8 (inclusive) quando o exigido é média >= 8. Duplo erro.

Alternativa C — ❌ Incorreta

Emprega AND (não é operador Java; em Java o AND lógico é &&). Também usa <= (menor ou igual) no lugar de < (estritamente menor), aprovando alunos com exatamente 25% de faltas, quando a regra exige "abaixo de 25%".

Alternativa D — ✅ Correta ⟵ GABARITO

Usa && (AND lógico com curto-circuito), < (estritamente menor) e 0.25 (double). Atende perfeitamente: média >= 8 E faltas < 25% das aulas.

Alternativa E — ❌ Incorreta

Usa & (bitwise AND, que em booleanos funciona mas não é o idiomático) e <= em vez de <. Além disso, a expressão 25/100 é divisão de inteiros, resultando em 0. Assim, qtdFaltas < qtdAulas * 0 equivale a qtdFaltas < 0, condição impossível para faltas (não negativas) — nunca aprovaria ninguém.

NÃO CAIA NESSA!

A banca explora dois tropeços comuns em Java: (1) a divisão inteira 25/100 vale 0, não 0.25 — para obter double, use 25.0/100 ou 0.25 diretamente; (2) confundir && (AND lógico) com & (AND bitwise) ou com || (OR). Memorize: toda vez que a regra de negócio exigir "os dois ao mesmo tempo", o operador Java é &&.

Gabarito: letra D.

Link permanente: /questoes/fc070090