File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes for each Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "for each" Watch "for each" New topic
Author

for each

jason roberts
Greenhorn

Joined: Jun 23, 2007
Posts: 5
Can someone explain why the output to the following code is: 0 0 3 0



I would think there would be an ArrayOutOfBounds exception in the first for loop because it tries to set arr[4] = 0.

Thanks.
sravani jetty
Ranch Hand

Joined: Jun 06, 2007
Posts: 38
Hi Jason,
In the first iteration i=1 which sets arr[1]=0 .The resulting array is {1,0,3,4}
In the second iteration i=0 which sets arr[0]=0. The resulting array is {0,0,3,4}
In the third iteration i=3 which sets arr[3]=0. The resulting array is {0,0,3,0}
In the last iteration i=0 which sets arr[0]=0. The resulting array is {0,0,3,0}
jason roberts
Greenhorn

Joined: Jun 23, 2007
Posts: 5
Hi Sravani,

In the first iteration i=1 which sets arr[1]=0 .The resulting array is {1,0,3,4}
In the second iteration i=0 which sets arr[0]=0. The resulting array is {0,0,3,4}
In the third iteration i=3 which sets arr[3]=0. The resulting array is {0,0,3,0}
In the last iteration i=0 which sets arr[0]=0. The resulting array is {0,0,3,0}


I guess I don't understand why it isn't:

In the first iteration i=1 which sets arr[1]=0 .The resulting array is {1,0,3,4}
In the second iteration i=2 which sets arr[2]=0. The resulting array is {1,0,0,4}
In the third iteration i=3 which sets arr[3]=0. The resulting array is {1,0,0,0}
In the last iteration i=4 which attempts to set arr[4]=0, and throws an exception.

I thought that since the array is {1,2,3,4}, the index values on each iteration would be 1,2,3 and 4.

Please help.

Thanks.
jason roberts
Greenhorn

Joined: Jun 23, 2007
Posts: 5
I think I get it now, the resulting array is used in the for-each loop, not just the initial array.

Thanks for your help.
nitin pokhriyal
Ranch Hand

Joined: May 19, 2005
Posts: 263
can anybody explain why in iteration 2 i becomes 0 and in 4th iteration too also? how the value of i is changing. ?
[ June 27, 2007: Message edited by: nitin pokhriyal ]
Ketul Shah
Greenhorn

Joined: Jun 17, 2007
Posts: 2
can anybody explain why in iteration 2 i becomes 0 and in 4th iteration too also?


in the first iteration i initialized with arr[0] means i=1 so in the loop a[i=1]=0 which actually second element in the array.

same explanation for the third iteration.

I hope this gives you clear idea.
nitin pokhriyal
Ranch Hand

Joined: May 19, 2005
Posts: 263
thanks buddy
Manfred Klug
Ranch Hand

Joined: Jun 04, 2007
Posts: 377
Originally posted by jason roberts:
the resulting array is used in the for-each loop, not just the initial array.


There is no initial or resulting array. You have only one array. In your example the for loop is translated to something like this:
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: for each