Bom, essa aqui do inquisition me dexou com dor de cabeça, segue:
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4 };
for (int i : arr) {
arr[i] = 0;
}
for (int i : arr) {
System.out.print(i);
}
Retorna 0030. Não consigo enxergar o porque !
Alguém explica ?
Grato.
[quote=Gustavo Santos]Bom, essa aqui do inquisition me dexou com dor de cabeça, segue:
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4 };
for (int i : arr) {
arr[i] = 0;
}
for (int i : arr) {
System.out.print(i);
}
Retorna 0030. Não consigo enxergar o porque !
Alguém explica ?
Grato.[/quote]
1º Iteração: arr[1] = 0
2º Iteração: arr[0] = 0
3º Iteração: arr[3] = 0;
4º Iteração: arr[0] = 0;
Unico valor que nao foi alterado foi da posiçao 2, que no caso é o 3.
Entao ficou 0030.
Blz li o outro tópico… Me confundi todo com os índices igual ao
outro carinha
.
Vlw!
Eu ainda nao entendi[2]
Nao entendo no segundo momento, como que o i passa ser igual a 0?
pois int i recebe 1,2,3,4
entra no primeiro
arr[i(no caso o primeiro é 1)] = 0
ou seja fica assim
1 0 3 4
o segundo passo nao tinha que ser
arr[i(no caso seria 2)] = 0?
como q o i =2 vira 0? :shock:
obrigado
A iteração do for começa no índice 0.
Vcs estão fazendo confusão com o índice do array com
o índice da iteração…
Faz de fagarzinho que saii !!!
como assim gustavo?
tem como explicar + detalhadamente? e vc achou o outro topico dessa questao?
dei uma procurada e nao achei
Valeu
http://www.guj.com.br/posts/list/218389.java#1115608
ViniGodoy:
Rode com um debugger:
Na primeira iteração:
array[1] = 0;
O array fica:
{1,0,3,4}
Na segunda iteração:
array[0] = 0;
O array fica:
{0,0,3,4}
Na terceira iteração:
array[3] = 0;
O array fica:
{0,0,3,0}
Na quarta iteração:
array[0] = 0;
O array fica:
{0,0,3,0}
E termina seu for.
Preste atenção, pois i não é um contador . i é o elemento que está sendo percorrido, pois trata-se de um for each.
Nossa agora que fui entender,hehehe
brigadao