1. public class Test { 2. public static void main(String [] args) { 3. int I = 1; 4. do while ( I < 1 ) 5. System.out.print("I is " + I); 6. while ( I > 1 ) ; 7. } 8. }
The answer is no output is produce. But isnt there a compilation error???
I've added better indentation (which was left out on purpose in the book) so you can see the real flow.
The trick is, this is a while loop inside a do-while loop, which is perfectly fine.
Now as to why there is no output. The inner loop itself is executed at least one. However, it's guard yields false immediately, so its body (the print) is not executed. Next the outer loop's guard is evaluated, and it too is false, thereby ending this loop too.