Say you've declared a BufferedReader called "source". The standard way to read through the lines is something like: String curLine = source.readLine(); while ( curLine != null ) { System.out.println( curLine ); curLine = source.readLine(); } Many Java learners are bothered by the fact that this approach requires two distinct readLines. Below are three attempts to reduce it down to a single readLine. Explain what would go wrong if we used this loop instead of the one above: a. String curLine; while ( curLine != null ) { String curLine = source.readLine(); System.out.println( curLine ); } b. String curLine = ""; while ( curLine != null ) { String curLine = source.readLine(); System.out.println( curLine ); } c. String curLine; do { curLine = source.readLine(); System.out.println( curLine ); } while ( curLine != null ); In addition to the while statement, Java also has a do-while statement. This statement *ALWAYS* executes an iteration of the loop and then checks the while condition. Put another way, the do-while evaluates the while at the end of the loop instead of the beginning.