Decision structures (also known as selection structures) are used in programming to take an action based on the result of a question (Farrell, 2008). An if-then-else statement is the most basic kind of decision structure. The question is represented as a Boolean expression that results in a true or false result. Depending on the result, one of two code paths is taken. Once the end of an if-then-else statement is reached, the program continues at the same point, regardless of which decision was made (Thomas, 2005). The following pseudocode diagrams a scenario when an invoice system must add a late fee to an invoice if the previous invoice is more than 30 days overdue.

  if daysLate > 30 then
    add lateFee
    no lateFee
  print invoice

A case statement is a decision structure that is used when a single variable can produce several different actions based on its value. Although this result can be achieved by using nested if-then-else statements, the case statement is a convenient way to represent this common situation (Farrell, 2008). In a real world application, a billing system may print different bills depending on which week of the month it is as the pseudocode below describes.

  case based on week
    case 1
      print week one invoices
    case 2
      print week two invoices
    case 3
      print week three invoices
      print monthly report

There are two main categories of loop structures. Logically controlled loop structures execute based on the result of a Boolean comparison. Logically controlled loop structures can be further broken down into pre-test and post-test loops. Pre-test loops perform a Boolean comparison and perform the iteration only if the comparison is true. Sometimes called while-do loops, this loop structure is useful if code inside the loop does not have to execute at least once (Scott, 2009). In keeping with the theme of invoice generation, the following pseudocode prints invoices until there is none left to print. A pre-test loop is used here since there may be no invoices to print when the application is run.

  while invoices > 0 d0
    print invoice
    invoices = invoices - 1

A post-test loop performs the statements in the iteration portion of the code before checking the Boolean comparison that controls continued iteration. This structure is also known as a do-until loop structure. A post-test loop is most useful when the code must be executed at least once (Scott, 2009). For example, when printing paychecks for a small business, there will always be at least one paycheck, the owner's.

    print paycheck
    paychecks = paychecks - 1
  until paychecks = 0

Enumeration-controlled loop structures are executed once for ever value in a defined set. Although for loops are implemented differently across programming languages, the concept is still the same. When the number of iterations of a loop is known, the for loop is the most common implementation (Scott, 2009). A for loop could be used to print a company's work schedule for the upcoming week.

  for day = 0 to 4
    print schedule


Farrell, J. (2008). Programming logic and design, comprehensive (5th ed.). Boston: Thomson Course Technology.

Scott, M. L. (2009). Programming language pragmatics (3rd ed.). San Francisco, CA: Morgan Kaufmann.

Thomas, D. (2005) Programming Ruby: The pragmatic programmer's guide (2nd ed.). Raleigh, NC: The Pragmatic Bookshelf.