Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 9 da Aula 7 - Casting

Os atributos dentro do IF são alterados se eu utiliza "--" ou "++"?

Ainda assim não consegui entender como que ele vira 7.

Pra mim ele mostraria A56, pois os atributos não eram alterados fora do IF.

3 respostas
solução!

Rodrigo ,

é o seguinte esse é o tipo de caso que precisa tomar muito cuidado e tem que fazer teste de mesa para entender .

vamos la o código é o seguinte :

class $_o0o_$ {
    public static void main(String[] args) {
        int $$ = 5;
        int __ = $$++;
        if (__ < ++$$ || __-- > $$)
            System.out.print("A");
        System.out.print($$);
        System.out.print(__);
    }
}

vamos la $$ = 5 , ok

para o a variavel __ ele atribui o valor de 5 e depois a variavel $$ incrementa e vira 6

então quando entra no if , temos $$ = 6 e __ = 5 .

vamos para o if :

se 5 < 7 ou 5 > 6

neste caso , o valor $$ que pré incrementa vale 7 , e a variavel __ pós -incrementa então ela ainda está valendo 5

imprime A porque 5 é menor que 7

sai do if e imprime o valor da variável $$ que é 7

A7

e __ ainda está valendo 5

imprime 5

então fica A75

e agora sim o __ está valendo 4

e encerra o programa .

conseguiu entender , não sei se conseguir expressar muito bem !!

Espero ter te ajudado .

Otima explicação Celso obrigado!

Mas não seria correto dizer que na verdade:

Por || ser um OU lógico, neste caso, o que vem depois do || não é processado (pois a primeira parte da avaliação é verdadeira). Então a variável __ nunca se torna 4?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software