Table of Contents

Control Structures: Repetition examples

The while statement

simple_while.cpp
// This program counts to an upper limit
#include <iostream>
using namespace std;
 
int main()
{
    const int UPPER_LIMIT = 5;
    int num = 1;
 
    while (num <= UPPER_LIMIT)
    {
        cout << num << endl;
        num = num + 1;
    }
 
    return 0;
}

increment operator

increment-example.cpp
// This program counts to an upper limit
#include <iostream>
using namespace std;
 
int main()
{
    int num = 10;
 
    cout << num << endl;
    num++;
 
    return 0;
}

Repetition code patterns

Counter-controlled repetition

counter-controlled-repetition.cpp
// This program counts to an upper limit
#include <iostream>
using namespace std;
 
int main()
{
    const int UPPER_LIMIT = 5;
    int num = 1;                 // initialize the counter
 
    while (num <= UPPER_LIMIT)   // test the count
    {
        cout << num << endl;
        num++;                   // increment the counter
    }
 
    return 0;
}

Sentinel-controlled repetition

simple-sentinel.cpp
    // This program determines whether test scores are passing marks.
    #include <iostream>
    using namespace std;
 
    int main()
    {
        const unsigned int PASSING_SCORE = 60;
        int score;
 
        cout << "Enter a test scrore and I will tell you if it is a passing mark." << endl;
        cout << "Enter -1 to quit: ";
        cin >> score;
 
        while (score != -1)
        {
            if (score >= PASSING_SCORE)
            {
                cout <<  score << ": PASS" << endl;
            }
            else
            {
                cout <<  score << ": FAIL" << endl;
            }
 
            cout << "Enter a test scrore and I will tell you if it is a passing mark." << endl;
            cout << "Enter -1 to quit: ";
            cin >> score;
        }
 
        return 0;
    }

Input validation

simple-input-validation.cpp
// Simple example of input validation.
#include <iostream>
using namespace std;
 
int main()
{
    const int LOWER_BOUND = 0;
    const int UPPER_BOUND = 100;
    int num;
 
    cout << "Enter a number between " << LOWER_BOUND 
         << " and " << UPPER_BOUND << ": ";
    cin >> num;
 
    // Fall through loop only if input is valid.
    while (num < LOWER_BOUND || num > UPPER_BOUND)
    {
        cout << "Enter a number between " << LOWER_BOUND
             << " and " << UPPER_BOUND << ": ";
        cin >> num;
    }
 
    cout << "Congratulations, you can follow directions." << endl;
 
    return 0;
}

Running total

simple-running-total.cpp
// Simple running total example.
// Total all the integers between a lower and an upper bound.
#include <iostream>
using namespace std;
 
int main()
{
    const int LOWER_BOUND = 0;
    const int UPPER_BOUND = 10;
 
    int num = LOWER_BOUND;  // counter
    int sum = 0;            // accumulator
 
    while (num <= UPPER_BOUND)
    {
        sum += num;         // add the new value to the accumulator
        num++;
    }
 
    cout << "The sum of integers from " << LOWER_BOUND
         << " to " << UPPER_BOUND
         << " is " << sum << endl;
 
    return 0;
}

The for statement

simple-for.cpp
// This program counts to an upper limit using a for structure.
#include <iostream>
using namespace std;
 
int main()
{
    const int UPPER_LIMIT = 5;
    int num;
 
    for (num = 1; num <=UPPER_LIMIT; num++)
    {
        cout << num << endl;
    }
 
    return 0;
}

Nested loops

nested-loop.cpp
// This program does some graphics with nested loops.
#include <iostream>
using namespace std;
 
int main()
{
    const int NUM_ROWS = 5;
    const int NUM_COLUMNS = 3;
 
    for (int row = 1; row <= NUM_ROWS; row++)
    {
        for (int column = 1; column <= NUM_COLUMNS; column++)
        {
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

break and continue

simple-break.cpp
// Print out a list of powers of 2.
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    const int UPPER_LIMIT = 100;
    int num = 1;    // counter
    char choice;    // used to get user input
 
    while (num <= UPPER_LIMIT)
    {
        cout << "2 to the " << num << " power is " << pow(2, num) << endl;
        cout << "Should I go on? [y/N]: ";
        cin >> choice;
        if (choice == 'N' || choice == 'n')
            break;    // (try replacing with 'continue')
        num++;
    }
 
    cout << "Goodbye!" << endl;
    return 0;
}