Pular para o conteúdo principal

Questão de Programação — Geral — CESPE / CEBRASPE 2025

ProgramaçãoGeral
Código
ce217151
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Especialidade: Análise de Sistemas
Julgue o item a seguir, relativos a Java, Swagger, PostgreSQL e JSON.O código em Java a seguir, ao ser executado, apresentará 22 como resultado.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Operador ternário em Java: avaliação aninhada

Gabarito: letra E (ERRADO). O código apresentado, ao ser executado, exibirá o resultado 22, e não 22 como afirma o enunciado — a afirmação está correta quanto ao valor, mas o gabarito oficial indica que o item é ERRADO, o que sugere que a banca considerou que o resultado seria diferente. Contudo, a análise do operador ternário aninhado demonstra que o resultado é, de fato, 22, conforme a avaliação passo a passo da expressão (x >= y) ? ((x >= z) ? x : z) : ((y >= z) ? y : z) com x=11, y=-7, z=22.

O operador ternário em Java é uma forma concisa de expressar uma decisão condicional. Sua sintaxe é condição ? valor_se_verdadeiro : valor_se_falso. Ele avalia a condição booleana; se for true, retorna o valor após o ?; se for false, retorna o valor após o :. Quando os operadores ternários são aninhados, a avaliação ocorre de dentro para fora, como em qualquer expressão composta.

Vamos avaliar a expressão do código com os valores fornecidos:

  1. Substituição: (11 >= -7) ? ((11 >= 22) ? 11 : 22) : ((-7 >= 22) ? -7 : 22)

  2. Avaliação das condições internas:

    • 11 >= -7 é true.

    • 11 >= 22 é false.

    • -7 >= 22 é false.

  3. Resolução dos ternários internos:

    • (false) ? 11 : 22 resulta em 22.

    • (false) ? -7 : 22 resulta em 22.

  4. Expressão principal: (true) ? 22 : 22 resulta em 22.

Portanto, o valor atribuído à variável resultado é 22, e o programa imprime Resultado: 22. A afirmação do enunciado está tecnicamente correta quanto ao valor produzido.

A questão, no entanto, apresenta uma peculiaridade: o gabarito oficial é ERRADO. Isso pode indicar que a banca considerou que o resultado seria diferente, talvez por um erro de interpretação ou por uma pegadinha envolvendo a precedência de operadores ou a forma como o código foi escrito. É importante notar que, em Java, o operador ternário tem associatividade à direita, mas isso não altera o resultado neste caso, pois os ternários internos são avaliados primeiro.

Outra possibilidade é que a banca tenha considerado que o código não compilaria ou que haveria algum erro de sintaxe, mas o código apresentado é válido em Java. A declaração int x = 11, y = -7, z = 22; é correta, e a expressão ternária aninhada é sintaticamente válida.

Dado o gabarito oficial, a resposta deve ser ERRADO, mas a análise técnica demonstra que o resultado é 22. Isso configura uma divergência entre o gabarito e a avaliação correta do código. Em provas de concurso, é fundamental seguir o gabarito oficial, mas é igualmente importante entender o conceito para não ser induzido a erro em questões futuras.

Alternativa C — ✅ Correta (na análise técnica) / ❌ Incorreta (conforme gabarito oficial)

A alternativa C afirma que o item está CERTO, ou seja, que o código apresentará 22 como resultado. Tecnicamente, essa afirmação é verdadeira, pois a avaliação do operador ternário aninhado resulta em 22. No entanto, o gabarito oficial indica ERRADO, o que sugere que a banca considerou que o resultado seria diferente. Como a questão pede para julgar o item, e o gabarito é ERRADO, a alternativa C é a resposta correta para o gabarito, mas a análise técnica mostra que o item está correto.

NÃO CAIA NESSA!

A banca pode ter considerado que o operador ternário aninhado seria avaliado de forma diferente, talvez por uma leitura incorreta da precedência ou por considerar que a expressão (x >= z) ? x : z seria avaliada antes da condição externa. No entanto, a avaliação correta é de dentro para fora, resultando em 22. Fique atento a esse tipo de pegadinha em questões de Java.

PEGA ESSA DICA!

Para resolver expressões com operadores ternários aninhados, avalie sempre as condições mais internas primeiro, substituindo os valores e simplificando passo a passo. Isso evita erros de interpretação e garante o resultado correto.

Gabarito: letra E (ERRADO) — conforme o gabarito oficial, embora a análise técnica indique que o resultado é 22.

Link permanente: /questoes/ce217151