C++ Loops
CS1 Lecture 3(?)
Intro
Covered so far
- Hello world! Building and running from the command line
- Vi / Emacs basics, and familiarity with your IDE of choice
- Some other basic C++ I/O techniques (
std::coutandstd::cin) - Intro to what C++ standards are
- Control flow and basic conditionals
Covering today
- Loops
- While
- Do-While
- For
- Range-based for loop (C++11)
- Examples of each
- Debugging
What’s next?
- Math Libraries
- Data Structures
- Pointers
- Object Oriented Programming
While Loops
Motivation
Say we have our basic hello world program (compiled with gcc main.cpp -lstdc++ -o a.out):
What if we want to print Hello World!:
- 5 times?
- 10 times?
- A variable amount of times (read through standard input)
Copy and Paste?
What’s wrong with this approach?
- Hard to read!
- Labor intensive
- Hard to maintain
First while loop
Lets take a look as a while loop that prints Hello World 5 times:
While control flow

This while loop is equivalent to…
Notice that this is:
- Arguably, harder to read than a while loop
- Contains a
gotostatement - these should be used sparingly - Scope of variables is the same
Infinite Loops!?
- What do you expect the output of this program to be?
- How do you terminate a stray running program? (CTRL + C)
- Are there other ways that we can control loop execution?
To Continue or To Break, that is the question
- Say we want to print the numbers 1-10, but we don’t want to print 4!
- Lets also do this without a condition for the while loop
Continue / break is not unique to this style of loop, and is applicable to all loops.
Do-While Loops
Lets do a side-by-side conparison of the while and do-while loop styles:
Both programs produce the same output, and use roughly the same lines of code.
Do-While use cases
From this SO post:
I’ve been programming for a while now (2 years work + 4.5 years degree + 1 year pre-college), and I’ve never used a do-while loop short of being forced to in the Introduction to Programming course. I have a growing feeling that I’m doing programming wrong if I never run into something so fundamental.
So, when should we use a do-while loop?
- When you want to try something once, and then retry until it succeeds / you give up
- Display / do something while waiting for an exit signal (embedded systems / applications)
- If the code should always execute at least once
- Your initial conditions would cause a while loop to terminate
Do-While control flow

For Loops
Here is our same “Hello World” program using a traditional C++ for loop:
Notice the different components separated via ;: - Init-statement - Condition - Expression - Loop body / statement
You can include multiple / zero expressions within each component. Expressions are separated via ,
Could this be a while loop?
- What are the key differences between these two approaches?
- Do you think that one is more / less readable than the other?
- What do you prefer?
For loops can be infinite as well!
- This is perhaps the most space efficient way to write an infinite loop
- I call this a “spider” inifinite loop because
(;;)kind of looks like a spider…
Technically Hello World
Range-based Loops
TODO
Debugging
TODO