ECE 151 – Introduction to
Programming
The Increment and Decrement
Operators
● ++ is the increment operator.
It adds one to a variable.
val++; is the same as val = val + 1;
● ++ can be used before (prefix) or after (postfix) a
variable:
++val; val++;
The Increment and Decrement
Operators
● -- is the decrement operator.
It subtracts one from a variable.
val--; is the same as val = val - 1;
● -- can be also used before (prefix) or after (postfix) a
variable:
--val; val--;
Increment and Decrement
Operators in Program 5-1
Continued…
Increment and Decrement
Operators in Program 5-1
Prefix vs. Postfix
● ++ and -- operators can be used in complex statements and expressions
● In prefix mode (++val, --val) the operator increments or decrements,
then returns the value of the variable
● In postfix mode (val++, val--) the operator returns the value of the
variable, then increments or decrements
Prefix vs. Postfix - Examples
int num, val = 12;
cout << val++; // displays 12,
// val is now 13;
cout << ++val; // sets val to 14,
// then displays it
num = --val; // sets val to 13,
// stores 13 in num
num = val--; // stores 13 in num,
// sets val to 12
Notes on Increment and Decrement
● Can be used in expressions:
result = num1++ + --num2;
● Must be applied to something that has a location in
memory. Cannot have:
result = (num1 + num2)++;
● Can be used in relational expressions:
if (++num > limit)
pre- and post-operations will cause different comparisons
Introduction to Loops:
The while Loop
● Loop: a control structure that causes a statement or statements to repeat
● General format of the while loop:
while (expression)
statement;
● statement; can also be a block of statements enclosed in { }
The while Loop – How It Works
while (expression)
statement;
● expression is evaluated
○ if true, then statement is executed, and expression is evaluated again
○ if false, then the loop is finished and program statements following
statement execute
The Logic of a while Loop
The while loop in Program 5-3
How the while Loop in Program 5-3 Lines 9
through 13 Works
Flowchart of the while Loop in Program 5-3
The while Loop is a Pretest Loop
expression is evaluated before the
loop executes. The following loop will
never execute:
int number = 6;
while (number <= 5)
{
cout << "Hello\n";
number++;
}
Watch Out for Infinite Loops
● The loop must contain code to make expression become false
● Otherwise, the loop will have no way of stopping
● Such a loop is called an infinite loop, because it will repeat an infinite
number of times
Example of an Infinite Loop
int number = 1;
while (number <= 5)
{
cout << "Hello\n";
}
Using the while Loop for Input Validation
● Input validation is the process of inspecting data that is given to the program
as input and determining whether it is valid.
● The while loop can be used to create input routines that reject invalid data,
and repeat until valid data is entered.
Using the while Loop for Input Validation
● Here's the general approach, in pseudocode:
Read an item of input.
While the input is invalid
Display an error message.
Read the input again.
End While
Input Validation Example
cout << "Enter a number less than 10: ";
cin >> number;
while (number >= 10)
{
cout << "Invalid Entry!"
<< "Enter a number less than 10: ";
cin >> number;
}
Flowchart for Input Validation
Input Validation in Program 5-5
Counters
● Counter: a variable that is incremented or decremented each time a loop
repeats
● Can be used to control execution of the loop (also known as the loop control
variable)
● Must be initialized before entering loop
A Counter Variable Controls the Loop in
Program 5-6
Continued…
A Counter Variable Controls the Loop in
Program 5-6
The do-while Loop
● do-while: a posttest loop – execute the loop, then
test the expression
● General Format:
do
statement; // or block in { }
while (expression);
● Note that a semicolon is required after
(expression)
The Logic of a do-while Loop
An Example do-while Loop
int x = 1;
do
{
cout << x << endl;
} while(x < 0);
Although the test expression is false, this loop will
execute one time because do-while is a posttest
loop.
A do-while Loop in Program 5-7
Continued…
A do-while Loop in Program 5-7
do-while Loop Notes
● Loop always executes at least once
● Execution continues as long as expression is true, stops repetition
when expression becomes false
● Useful in menu-driven programs to bring user back to menu to make another
choice (see Program 5-8 on pages 245-246)
The for Loop
● Useful for counter-controlled loop
● General Format:
for(initialization; test; update)
statement; // or block in { }
● No semicolon after the update expression or after the
)
for Loop - Mechanics
for(initialization; test; update)
statement; // or block in { }
1) Perform initialization
2) Evaluate test expression
○ If true, execute statement
○ If false, terminate loop execution
3) Execute update, then re-evaluate test expression
for Loop - Example
int count;
for (count = 1; count <= 5; count++)
cout << "Hello" << endl;
A Closer Look at the
Previous Example
Flowchart for the Previous Example
A for Loop in Program 5-9
Continued…
A for Loop in Program 5-9
A Closer Look at Lines 15 through 16 in
Program 5-9
Flowchart for Lines 15 through 16 in Program
5-9
When to Use the for Loop
● In any situation that clearly requires
○ an initialization
○ a false condition to stop the loop
○ an update to occur at the end of each iteration
The for Loop is a Pretest Loop
● The for loop tests its test expression before each iteration, so it is a pretest
loop.
● The following loop will never iterate:
for (count = 11; count <= 10; count++)
cout << "Hello" << endl;
for Loop - Modifications
● You can have multiple statements in the
initialization expression. Separate the
statements with a comma:
Initialization Expression
int x, y;
for (x=1, y=1; x <= 5; x++)
{
cout << x << " plus " << y
<< " equals " << (x+y)
<< endl;
}
for Loop - Modifications
● You can also have multiple statements in the
test expression. Separate the statements
with a comma:
Test
Expression
int x, y;
for (x=1, y=1; x <= 5; x++, y++)
{
cout << x << " plus " << y
<< " equals " << (x+y)
<< endl;
}
for Loop - Modifications
● You can omit the initialization expression if it has already been
done:
int sum = 0, num = 1;
for (; num <= 10; num++)
sum += num;
for Loop - Modifications
● You can declare variables in the initialization expression:
int sum = 0;
for (int num = 0; num <= 10; num++)
sum += num;
The scope of the variable num is the for loop.
Keeping a Running Total
● running total: accumulated sum of numbers from each
repetition of loop
● accumulator: variable that holds running total
int sum=0, num=1; // sum is the
while (num <= 10) // accumulator
{ sum += num;
num++;
}
cout << "Sum of numbers 1 – 10 is"
<< sum << endl;
Logic for Keeping a Running Total
A Running Total in Program 5-12
Continued…
A Running Total in Program 5-12
Sentinels
● sentinel: value in a list of values that indicates end of data
● Special value that cannot be confused with a valid value, e.g., -999 for a test
score
● Used to terminate input when user may not know how many values will be
entered
A Sentinel in Program 5-13
Continued…
A Sentinel in Program 5-13
Deciding Which Loop to Use
● The while loop is a conditional pretest loop
○ Iterates as long as a certain condition exits
○ Validating input
○ Reading lists of data terminated by a sentinel
● The do-while loop is a conditional posttest loop
○ Always iterates at least once
○ Repeating a menu
● The for loop is a pretest loop
○ Built-in expressions for initializing, testing, and updating
○ Situations where the exact number of iterations is known
Nested Loops
● A nested loop is a loop inside the body of another loop
● Inner (inside), outer (outside) loops:
for (row=1; row<=3; row++) //outer
for (col=1; col<=3; col++)//inner
cout << row * col << endl;
Nested for Loop in Program 5-14
Inner Loop
Outer Loop
Nested Loops - Notes
● Inner loop goes through all repetitions for each repetition of outer loop
● Inner loop repetitions complete sooner than outer loop
● Total number of repetitions for inner loop is product of number of repetitions
of the two loops.
Breaking Out of a Loop
● Can use break to terminate execution of a loop
● Use sparingly if at all – makes code harder to understand and debug
● When used in an inner loop, terminates that loop only and goes back to outer
loop
The continue Statement
● Can use continue to go to end of loop and prepare for next repetition
○ while, do-while loops: go to test, repeat loop if test passes
○ for loop: perform update step, then test, then repeat loop if test passes
● Use sparingly – like break, can make program logic hard to follow
Thank You