Hi Bhavesh,
Option c is the right answer.
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