Considere o seguinte código, escrito em Java. class Main { p...
Considere o seguinte código, escrito em Java.
class Main {
public static void main(String[] args) {
int x = 11, y = -7, z = 22;
int resultado = (x >= y) ? ((x >= z) ? x :
z) : ((y >= z) ? y : z);
System.out.println(“Resultado: “ +
resultado);
}
}
A partir do código precedente, é correto afirmar que a execução desse código apresentará o seguinte resultado.
Resultado: 22
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C – Certo
1. Tema central e relevância
Esta questão exige conhecimento sobre operadores condicionais ternários em Java, conceito frequentemente explorado em provas de concursos para testar o domínio sobre estruturas de decisão e lógica de programação.
2. Resumo teórico
O operador ternário em Java é uma forma concisa de expressar decisões condicionais, substituindo estruturas if/else simples. Sua sintaxe é:
condição ? valorSeVerdadeiro : valorSeFalso;
Esse operador pode ser aninhado, isto é, utilizar um ternário dentro de outro, o que exige atenção à ordem de avaliação.
3. Justificativa da alternativa correta
Vamos analisar o código:
int x = 11, y = -7, z = 22;
int resultado = (x >= y) ? ((x >= z) ? x : z) : ((y >= z) ? y : z);
Explicação passo a passo:
- x >= y → 11 >= -7 → Verdadeiro
- Como a condição principal é verdadeira, avalia-se (x >= z) ? x : z
- x >= z → 11 >= 22 → Falso
- Portanto, pega o valor de z, que é 22.
Assim, o resultado será impresso como Resultado: 22, conforme afirma o enunciado.
4. Estratégias para interpretação
Fique atento à ordem de avaliação em expressões com operadores ternários aninhados e use parênteses para facilitar a compreensão. Recomenda-se também decompor o raciocínio em etapas simples, anotando os resultados parciais.
5. Conclusão
A alternativa C ("certo") está correta, pois o código realmente imprime Resultado: 22.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
## Analisando o Código Java
**Sim, a afirmação de que o resultado da execução do código será "Resultado: 22" está correta.**
**Vamos entender passo a passo por que isso ocorre:**
1. **Declaração de variáveis:**
* `int x = 11, y = -7, z = 22;`
* São declaradas três variáveis inteiras com os valores 11, -7 e 22, respectivamente.
2. **Expressão condicional:**
* `(x >= y) ? ((x >= z) ? x :z) : ((y >= z) ? y : z);`
* Essa é uma expressão condicional encadeada (operador ternário).
* **Primeira condição:** `(x >= y)` é verdadeira (11 é maior que -7).
* **Segunda condição:** `(x >= z)` é falsa (11 não é maior que 22).
* **Resultado:** Como a segunda condição é falsa, o valor `z` é escolhido.
3. **Impressão do resultado:**
* `System.out.println(“Resultado: “ +resultado);`
* O valor de `z`, que é 22, é concatenado à string "Resultado: " e impresso no console.
**Portanto, o resultado final da execução será:**
```
Resultado: 22
```
**Em resumo, o código está comparando os valores de x, y e z e atribuindo o maior valor à variável resultado. Neste caso, o maior valor é 22 (z).**
**Observação:** O operador ternário é uma forma concisa de escrever uma expressão condicional if-else em Java. Ele permite tomar decisões com base em uma condição e retornar um valor de acordo com o resultado da condição.
Fonte: Gemini
operador ternário (if-else abreviado)
(condição) ? valor_se_V : valor_se_F
se eu nao fosse da área pensaria que isso seria linguagem de alienígena
intx=11, y = -7, z = 22;
operador ternário, (condição) ? verdadeiro : falso
- (11 >= -7) condição
- ((11 >= 22) ? x : z) se a condição for verdadeira, irá retornar o resultado disso
- ((-7 >= 22) ? y : z) se a condição for falsa, irá retornar o resultado disso
Operador Ternário (?)
O operador ternário é uma forma curta de escrever um if-else em uma única linha.
int idade = 20;
String categoria = (idade >= 18) ? "Adulto" : "Menor";
System.out.println(categoria); // Saída: Adulto
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo