Olá Pessoal, tudo bom?
Aqui é a resposta do puzzle 004. Veja na continuação deste post!
Puzzle 004 – Resposta
E aí, o que o código da classe Teste irá imprimir no console???
1 2 |
Valor varA = 2 Valor varB = 3 |
Mas porque ele imprimiu esses valores?
Vamos analisar o que aconteceu na linha 11:
1 |
varB = ++varA + ++varA; |
Estabelecemos algumas verdades:
- Existem 2 operadores de pré incremento
- O valor inicial da varA é Zero
- O valor final da varA é dois
Bom, lembrando que o operador de pré incremento é acionado quando este aparece para uma variável. Assim no nosso caso como temos 2 operadores, ele irá incrementar o variável varA duas vezes. Confirmando o valor impresso no console de 2. Mas em todas as expressões ao atribuir o valor novo de uma unidade com o pré incremento, esse valor é trancado para aquele lugar da expressão.
Assim, como o valor de varB foi 3 isso fica corroborado no seguinte pensamento:
- Ocorreu um operador de pré incremento para a varA, logo o valor passa a ser 1 desta e a expressão final já fica com o valor 1 nessa posição que varA apareceu.
- Ocorreu um novo operador de pré incremento para varA, o valor passa a ser 2 e também é travado na expressão final.
- Assim a expressão ficaria da seguinte forma:
- varB = 1 + 2;
O que corrobora com o valor final de varB.
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