Fala, galera! Beleza?

Comentei uma questão sobre a Linguagem Java. Mais especificamente sobre Operadores de Incremento/Decremento e Operador de Atribuição Composta.

Então simbora, papai!

Analise o programa a seguir desenvolvidos

Com relação às estruturas de controle aplicáveis à linguagem JAVA, ambiente Netbeans 7 . 2 . 1, no programa acima, que sequência será impressa ao final de sua execução?

[A] -110111
[B] 0-10-111
[C] 011000
[D] 000000
[E] 000-100

Comentários:

A questão foca nos operadores de incremento e decremento. Eles podem ser:

  • Pré-fixados: é avaliado o valor incrementado (decrementado) de uma variável, ou seja, o valor trabalhado já é o incrementado (decrementado) ; e
  • Pós-fixados: é avaliado o valor original, ou seja, o valor trabalhado é o valor original de uma variável e depois o valor da variável é incrementado (decrementado) .

Exemplo com o operador de incremento/decremento pré-fixado:

int x = 15;
System.out.println(“x: ” + ++x); // O resultado gerado é x: 16.

 Exemplo com o operador de incremento/decremento pós-fixado:

int x = 15;
System.out.println(“x: ” + x++); // O resultado gerado é x: 15.
System.out.println(“x: ” + x); // O resultado gerado é x: 16.

 Agora iremos ao código da questão.

A variável c inicia com 1:

int c = 1;

 A variável c é atualizado com 0:

c = 0;

 Será impresso o valor original da variável c (decremento pós-fixado) e depois será decrementado (a variável c é atualizado para -1):

System.out.print(c–); // Será impresso 0.

 Será impresso o valor já incrementado da variável c (decremento pré-fixado) (a variável c é atualizado para 0):

System.out.print(++c); // Será impresso 0.

 Será impresso o valor atual da variável c:

System.out.print(c); // Será impresso 0.

 Seguindo no código, temos a utilização de um operador de atribuição composta:

c -= –c – c++;

 Organizando o trecho acima, temos:

c = c – ((–c) – (c++));

 Tudo o que está à direita do operador de atribuição será repassado para a variável c. Então vamos comentar esse lado do operador:

  • Primeiro operando (c): c é igual a 0 (valor da variável até o momento);
  • Segundo operando (–c): c é igual a -1 (valor já decrementado da variável, pois se está usando operador de decremento pré-fixado);
  • Terceiro operando (c++): c é igual a -1 (valor atualizado da variável no segundo operando e depois o valor é incrementado).

Organizando o trecho agora com valores, temos:

c = 0 – ((-1) – (-1));
c = 0 – (-1 + 1);
c = 00;
c = 0;

 Será impresso o valor original da variável c (decremento pós-fixado) e depois será decrementado (a variável c é atualizado para -1):

System.out.print(c–); // Será impresso 0.

 Será impresso o valor já incrementado da variável c (decremento pré-fixado) (a variável c é atualizado para 0):

System.out.print(++c); // Será impresso 0.

 Será impresso o valor atual da variável c:

System.out.println(c); // Será impresso 0.

 Ao final, será impresso 000000.

Gabarito: letra D.

Referência:

É isso aí, galera.
[]s e até a próxima.
——————————————
Rogério Araújo

Anúncios