- int [] a = {4,4};
- int b=1;
- a[b] = b = 0;
Alguem pode me dar exmplos e me responder o que acontece??
[]’
Alan
Alguem pode me dar exmplos e me responder o que acontece??
[]’
Alan
int [] a = {4,4}; // a[0] igual a 4, e a[1] igual a 4
int b=1; // b igual a 1
a[b] = b = 0; // primeiro b recebe 0, depois a[0] recebe o valor de b que é zero.
Em atribuições seguidas (como acontece na terceira linha) acontece da direita pra esquerda.
[]s, Welington B. Souza
mas a[b] é resolvido antes das atribuicoes…
logo,
a[1] = b(q é 1) = 0
resposta:
a[0] = 4 e a[1] = 0
t+
Mais por que o indice do B vai ser 1 e o resto vai ser zero??!!!
Não é da direita para a esquerda??
[]'s
Alan
a[b]; //1º a[b] e b nesse momento é igual a 1 então:
a[1];
b=0; //2º b recebe 0;
a[1] = b;//por ultimo vem essa atribuição, então:
a[1] = 0;
Me desculpem pessoal, cometí um engano e vou tentar corrigí-lo.
int [] a = {4,4}; // a[0] == 4, a[1] == 4
int b = 1;
// a instrução será quebrada em duas:
a[b] = b = 0;
Quando você tem uma expressao do tipo { a = b + c; } teremos:
a ira receber o resultado da expressao “b + c”. é mais ou menos
isso que o java faz. Para simplificar, vamos “entender” que tudo que
vem depois do sinal de atribuicao é uma expressão. Logo esta expressão
tem que ser resolvida primeiro para depois acontecer a atribuiçao.
Assim temos que:
a[b] = “expressao qualquer”, ou melhor
a[1] = “expressao qualquer”
Agora vamos tratar da "expressao qualquer"
b = 0;
Neste momento a espressao qualquer foi resolvida e tem o valor igual a zero.
Agora sim b[1] receberá o resultado da expressao;
a[1] = 0;
No final vai ficar assim:
a == {4, 0}
[]s, Welington B. Souza