<< Chapter < Page Chapter >> Page >

General background information

In an earlier module (see Resources ) , I told you that any programming logic problem could be solved using anappropriate combination of only three programming structures, none of which are complicated. The three structures are known generally as:

  • The sequence structure.
  • The selection or decision structure.
  • The loop, repetition, or iteration structure.

I explained the sequence and selection structures in earlier modules. I will concentrate on the loop structure in this and the next module.

Definite versus indefinite loops

Loop structures in programming fall into two broad categories:

  • Definite loops
  • Indefinite loops

There are numerous sub-categories within these broad categories. I will illustrate the difference between a definite loop and an indefinite loop with two real-world examples.

A definite loop example

Assume that you are confronted with a full box of cookies. Assume also that you have more self-control than most of us, and that you decide you can eatthree cookies, but no more than three, in order to keep your waistline under control. You might eat the three cookies using an algorithm something like thatshown in Image A .

Image a. a definite loop for eating cookies.

for count = 1 to 3 Take cookie from boxEat cookie Increase count by oneGo back to the test at the top of the loop Stop eating cookies
Image A. A definite loop for eating cookies.

Explanation of the definite loop

Being the self-controlled individual that you are, you would set your cookie limit to 3 and you would set count to 1. You would then test count to see if it is within the range from 1 to 3 inclusive. If so, you would take acookie from the box and eat it. Then you would increase the value of count by 1 and go back to the top of the loop.

Back at the top of the loop, you would once again test the value of count to determine if it is still within the range from 1 to 3 inclusive. If so, youwould repeat the process, getting and eating another cookie, increasing the value of count by 1, and going back to the top of the loop.

When you find that the value of count has advanced to 4, you would recognize that this is outside the range of 1 to 3 inclusive. As a result, youwould terminate the loop and stop eating cookies. Well done!

An indefinite loop example

Assume once again that you are confronted with the same full box of cookies. However, like many of us, you aren't blessed with a lot of self-control. In thatcase, you might eat cookies using the algorithm shown in Image B .

Image b. an indefinite loop for eating cookies.

Set the value of stillHungry to true while ((stillHungry is true) and (box is not empty))Take cookie from box Eat cookieIf I am no longer hungry Set stillHungry to falseGo back to the test at the top of the loop Stop eating cookies
Image B. An indefinite loop for eating cookies.

Explanation of the indefinite loop

Unfortunately, for many of us, as soon as we see the full box of cookies, our stillHungry variable gets set to true.

We begin the process by performing a test to determine if stillHungry is true and the box of cookies is not empty. If that test returns true, we take a cookie from the box and eat it. Then we perform another test. If weare no longer hungry at that point, we set our stillHungry variable to false and go back to test at the top of the loop. Otherwise, we allow our stillHungry variable to remain true.

Back at the top of the loop, we test again to determine if stillHungry is true, and the box of cookies is not empty. If the test returns true, we gothrough the process again, eating another cookie, etc.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Teaching beginners to code. OpenStax CNX. May 27, 2013 Download for free at http://cnx.org/content/col11498/1.20
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Teaching beginners to code' conversation and receive update notifications?

Ask