Questão comentada: [Desenvolvimento de Sistemas] Marinha 2013 – Quadro Técnico da Marinha – Informática


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

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

%d blogueiros gostam disto: