Após a execução do código abaixo, a variável a terá o valor ...
int a = 3;
int b = 4;
int c = 5;
a = b < c ? b:c;
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Resposta correta: E - Errado
A questão aborda o conceito de operador ternário em Java, que é uma forma concisa de realizar uma atribuição condicional. O operador ternário é expresso da seguinte forma:
variável = (condição) ? expressão1 : expressão2;
O que isso significa é que se a condição é verdadeira (true
), então a variável
recebe o valor da expressão1
; caso contrário, se a condição é falsa (false
), a variável
recebe o valor da expressão2
.
Na questão apresentada, temos:
int a = 3;
int b = 4;
int c = 5;
a = b < c ? b : c;
A condição b < c
é verdadeira, uma vez que o valor de b
(4) é de fato menor que o valor de c
(5). Portanto, seguindo a lógica do operador ternário, a variável a
deve receber o valor da variável b
, não o valor da variável c
.
Assim, após a execução do código, a
terá o valor 4, que é o valor de b
. Logo, a afirmação de que a
terá o valor de c
após a execução do código é incorreta.
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
int a = 3;
int b = 4;
int c = 5;
a = b < c ? b : c;
que é o mesmo (exatamente o mesmo) que:
int a=3;
int b=4;
int c = 5;
if(b < c){
a = b;
} else {
a = c;
}
O Java fornece o operador condicional, que pode ser utilizado no lugar de uma instrução if... else. Esse é o único operador ternário (que recebe 3 operandos) do Java. Juntos, os operandos e o símbolo ?: formam uma expressão condicional. O primeiro operando (à esquerda do ?) é uma expressão booleana, o segundo operando (entre o ? e :) é o valor da expressão condicional se a expressão booleana for true, e o terceiro operando (à direita do :) é o valor da expressão condicional se a expressão booleana for avaliada como false. ?:
Neste caso, então, o 1º operando “a = b < c” é a expressão booleana, o 2º operando “b” é o valor da expressão condicional se a expressão booleana for true, e o 3º operando “c” é o valor da expressão condicional se a expressão booleana for avaliada como false.
Como "b" é menor do que "c", então a variável “a” receberá o valor da variável “b”.
Resposta: Errado
Simplificando:
a = condição (b < c) ? se condição verdade (b) : se condição falso (c)
Como o b(4) é menor que c(5), então condição verdadeira. Retorna "b".
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo