Após a execução do código abaixo, a variável a terá o valor ...

Próximas questões
Com base no mesmo assunto
Q314395 Programação
Com relação à linguagem Java, julgue os próximos itens.

Após a execução do código abaixo, a variável a terá o valor da variável c.

int a = 3;
int b = 4;
int c = 5;
a = b < c ? b:c;

Alternativas

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

A questão quer saber se o candidato conhece a forma alternativa da estrutura condicional "if". Segue abaixo um exemplo das duas formas de fazer esta estrutura:

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;
}


operador ternário. Primeira opção é caso a condição seja verdadeira

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

a variável a terá o valor da variável b

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo