Activity 2-4 - Simple Flow of Control
Event-controlled while and do ... while loops

In the previous parts, you learned to use a while loop with fix number of loops and then with variable number of loops.  In both cases, you used a counting mechanism to stop the looping.  There are times that you want to use a condition to stop the looping.  For example, in the previous program, suppose you want to ask the user to see whether he/she wishes to enter a new grade.  For now, we will use an integer to control the looping number.  Here, the user will enter a 1 if he/she wishes to loop one more time and will enter a 0 or any other number to stop the looping.

// P24_1.cpp - Read and average some integers, print the result.
// This program continue asking for a new number until the user enters a 0 to terminate the program
#include <iostream.h>
using namespace std;
int main(void)
{
int x;
int count = 0;   // (1) initialize a counter to 0 to count number of values
int choice = 1; // This is the choice that controls the looping continuation or termination
double sum = 0; // initialize the sum to 0 to make sure the sum at the beginning is 0
double average;

while( choice == 1) // (2) read N grades and compute their sum, count ensures N entries
{
// read each number and compute the sum:
cout << "\n Enter a grade <Enter>: ";
cin >> x;
sum = sum + x;
count++;  // (3) update the count
// prompt the user:
cout << "Do you wish to enter another grade? (1 for yes and 0 or other key for no): " << endl;
cin >> choice;
}

if(count == 0)
cout << "You haven't entered any number, no average will be computed, bye \n";
else{
average = sum/count;  //Notice that we have divided by count this time
cout << "The average of these " << count << " grades is " << average << endl;
}

return 0;
}

Exercise 24-1
In program 24_1.cpp, right at the beginning you have initialized the choice to 1.  You did that to get the while loop to run at least once. If you use a do ... while instead, you wouldn't need to initialize the choice.  Re-write the above program, call the new program ex24_1.cpp, so that is uses do ... while.  Do not initialize the choice to 1 this time and compile and run the program.  Does the program work the same way?