Chapter 4: point 4 under for loop.
4. Using Incompatible Data Types in the Initialization Block
Like the third example, this code will not compile, although this time for a different reason. The variables in the initialization block must all be of the same type. In the multiple terms example, y and z were both long, so the code compiled without issue, but in this example they have differing types, so the code will not compile.
The above statement suggests that the below code should also not compile, whereas it does:
It's just my suggestion, as I was confused when I was trying various permutations myself as to understand the for loop better.
In the second code block, you have declared the loop variables in advance; that might not be such good design because the variables' scope is larger.
It might be better style to initialise the long variable to 0L.
Please tell us which sentence you think is phrased poorly, and the full details of the book inluding authors.
You won't learn to understand a for loop by looking at cert exam book examples. Practise with some “normal” loops with one variable only, iterating an array. Show us your code and let us see that we think of it.