Questao - forech

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.

Isso foi perguntado antes de ontem.

Blz li o outro tópico… Me confundi todo com os índices igual ao
outro carinha
.

Vlw!

Eu ainda não entendi :frowning:

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

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