Isso quer dizer que o array foi preenchido assim, depois do primeiro “foreach”:
arr[0] = 0
arr[1] = 0
arr[2] não foi mexido, e deve conter 3
arr[3] = 0
Ou seja, será impresso 0 0 3 0.
erdanielli
Cara, esse teu código ficou parecendo jogo de 7 erros. Se vc bobear acaba achando que tá tudo certo. Bom, deixa eu ver se consigo esclarecer o ocorrido:
int[]arr={1,2,3,4};for(inti:arr){//i=arr[0 a 3]//noprimeiroloop,i=1.Imprime1.arr[1],queera2,passaavaler0//nosegundoloop,i=0porquevczerouarr[1]noloopanterior.Imprime0.arr[0],queera1,passaavaler0//noterceiroloop,i=3.Imprime3.arr[3],queera4,passaavaler0//noquartoloop,i=0porquevczerouarr[3]noloopanterior.Imprime0.arr[0],queera0,continuavalendo0System.out.println(i);arr[i]=0;}
A explicação do colega já diz tudo. Eu tomei a liberdade de expôr o teste de mesa e tentar deixar esclarecido de vez.
Abraços!
G
guilherme.cq
PQP!!!
Obrigado pela ajuda… antes de responderem… resolvi pegar uma folha de sulfite novinha para fazer o teste…