Originally posted by karnatam narendraprasad: hi the array values changes like this i values are i=1 i=0 i=3 i=0 {1,2,3,4},{1,0,3,4},{0,0,3,4},{0,0,3,0},{0,0,3,0}

Yes. I think the i in the for() loop is not the index of the array, instead, it's the element of the array.

int []arr = {1,2,3,4}; for ( int i : arr ) { arr[i] = 0; } for ( int i : arr ) { System.out.println(i); }

Lets iterate the loop to see how we get this answer. 1) On first go, value of i is 1 (because enhanced for loop, makes the iterator iterate on the elements of the array or the collection) therefore arr[1] will become 0, so after this arr will be {1,0,3,4} 2) In second round, value of i is 0 because the next element of the array is 0 thus making arr[0] = 0 and now we have arr as {0,0,3,4} 3) On third iteration, value of i is 3 this will update arr[3] to 0 after which arr looks like {0,0,3,0} 4) In last iteration, again value of i is 0 so arr[0] will be 0 and it was already 0. Thus when the loop is over final value in arr will be {0,0,3,0}

I hope this explains why choice c was right.

Thanks, -Rancy

Thanks,<br />-Rancy

Bhavesh Thakkar
Greenhorn

Joined: Mar 04, 2007
Posts: 21

posted

0

Hey thanks everyone i think my dought is clear now.