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.
start if daysLate > 30 then add lateFee else no lateFee endif print invoice stop
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.
start case based on week case 1 print week one invoices case 2 print week two invoices case 3 print week three invoices default print monthly report endcase stop
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.
start while invoices > 0 d0 print invoice invoices = invoices - 1 endwhile stop
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.
start do print paycheck paychecks = paychecks - 1 until paychecks = 0 stop
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.
start for day = 0 to 4 print schedule endfor stop
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.