Questao - forech

9 respostas
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.

9 Respostas

evertonsilvagomesjav

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.

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.

ViniGodoy

Isso foi perguntado antes de ontem.

Gustavo_Santos

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

Vlw!

deyvid

Eu ainda não entendi :frowning:

M

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

Gustavo_Santos

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 !!!

M

como assim gustavo?
tem como explicar + detalhadamente? e vc achou o outro topico dessa questao?
dei uma procurada e nao achei
Valeu

ViniGodoy

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.

M

Nossa agora que fui entender,hehehe
brigadao

Criado 16 de setembro de 2010
Ultima resposta 16 de set. de 2010
Respostas 9
Participantes 5