Olá Pessoal, tudo bom?
Aqui é a resposta do puzzle 003. Veja na continuação deste post!
Puzzle 003 – Resposta
E aí, o que o código da classe Teste irá imprimir no console???
1 2 |
Valor varA = 2 Valor varB = 2 |
Mas porque ele imprimiu esses valores?
Vamos analisar o que aconteceu na linha 11:
1 |
varB = ++varA + varA++; |
Estabelecemos algumas verdades:
- Existe 1 operador de pré incremento
- Existe 1 operador de pós incremento
- O valor inicial da varA é Zero
- O valor final da varA é dois
Bom, se existe um operador de pós incremento, significa que a variável ao fim da execução foi incrementada em uma unidade, pois o pós incremento não reaparece na expressão até seu fim. Assim durante a execução da linha 11, varA estava com o valor 1.
Logo 1 + 1 = 2 que é o valor final da varB.
Assim restou 1 operador de pré incremento que ainda não foi “utilizado” pela nossa explicação. Para que varA chegue ao valor 1 durante a operação de adição significa que antes desta operação o operador de pré incremento foi utilizado.
Assim, resumindo o que aconteceu foi o seguinte:
- Ao iniciar a linha da expressão o operador de incremento entrou em operação para o pré incremento, adicionando 1 unidade a varA.
- Foi realizada a operação de adição (1 + 1), atribuindo o valor final a varB (2)
- Foi realizada a operação de pós incremento, adicionando 1 unidade a varA, chegando ao seu valor final (2)
finnaly{
Gostou dos puzzle? Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply