A good answer might be:

The completed program is given below.

Complete Add Up Program

Here is the completed program. Notice how the loop condition always has a "fresh" value to test. To make this happen, the first value needs to be input before the loop starts. The remaining values are input at the bottom of the loop body.

import java.io.*;

// Add up all the integers that the user enters.
// After the last integer to be added, the user will enter a 0.
//
class addUpNumbers
{
  public static void main (String[] args ) throws IOException
  {
    BufferedReader userin = new BufferedReader 
        (new InputStreamReader(System.in));
    String inputData;
    int value;             // data entered by the user
    int sum = 0;           // initialize the sum

    // get the first value
    System.out.println( "Enter first integer (enter 0 to quit):" );
    inputData  = userin.readLine();
    value      = Integer.parseInt( inputData );  // "fresh" value, 
                                                 // about to be tested

    while ( value != 0 )    
    {
      //add value to sum
      sum = sum + value;

      //get the next value from the user
      System.out.println( "Enter next integer (enter 0 to quit):" );
      inputData  = userin.readLine();
      value      = Integer.parseInt( inputData ); // "fresh" value, 
                                                  // about to be tested
      
    }

    System.out.println( "Sum of the integers: " + sum );
  }
}

The statements that get the first value and the statements that get the remaining values are nearly the same. This is OK. If you try to have just one set of input statements you will dangerously twist the logic of the program.    

QUESTION 3:

What would happen if the very first integer the user entered were "0"?