This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
[Rob']: I don't know why Sun have done it, but the iteration variable must always be declared inside the loop itself. You can't use a previously declared variable.
I guess because there's really no benefit to reusing an existing variable here (unless perhaps you're doing a lot of deep recursion and are reunning out of stack space). Any previous value of the variable will be overwritten anyway, and in general it just makes the code more confusing if the variable is declared away from where it's used. I guess they're just encouraging good style.