Lesson 3
Nested IF Statements in COBOL
Exploring Nested IF Statements

Welcome back! In the previous lessons, you learned to use IF statements for decision-making and the EVALUATE statement for more complex decision paths in COBOL. Now, let's take it a step further by discussing nested IF statements. This lesson will help you understand how to use nested IF statements to create more sophisticated decision-making structures in your COBOL programs.

What You'll Learn

Nested IF statements allow you to handle multiple layers of conditions in a hierarchical manner. This is particularly useful when dealing with complex logic that requires several conditions to be checked before making a decision. In this lesson, we'll cover:

  • The syntax for nested IF statements
  • Practical examples to illustrate nested IF statements in action

Here’s a snippet of COBOL code to demonstrate:

cobol
1IDENTIFICATION DIVISION. 2PROGRAM-ID. NestedIfDemo. 3DATA DIVISION. 4WORKING-STORAGE SECTION. 501 Account-Balance PIC 9(6) VALUE 0. 601 Minimum-Balance PIC 9(6) VALUE 1000. 701 Account-Status PIC X(13). 8PROCEDURE DIVISION. 9 MOVE 500 TO Account-Balance. 10 IF Account-Balance > 0 11 IF Account-Balance < Minimum-Balance 12 MOVE "Low Balance" TO Account-Status 13 ELSE 14 MOVE "Good Standing" TO Account-Status 15 END-IF 16 ELSE 17 MOVE "Overdrawn" TO Account-Status 18 END-IF. 19 DISPLAY "Account Status: " Account-Status. 20 STOP RUN.

In this example:

  1. Primary Condition Check: We first check if the Account-Balance is greater than zero.
  2. Secondary Condition Check: If the Account-Balance is indeed greater than zero, we check if it is less than the Minimum-Balance.
  3. Nested Decisions: Depending on the value of Account-Balance, we then update the Account-Status accordingly.

By nesting IF statements, you can handle more complex decision trees efficiently. This method is ideal when multiple related conditions need to be evaluated step-by-step.

Also, pay attention to the fact that the nested END-IF statement doesn't have a period at the end, unlike the primary END-IF statement. In COBOL, a period signifies the end of a logical block of code, such as a statement, a paragraph, or even an entire section. When you use a period at the end of an IF statement, it tells the compiler that the IF block is complete and that execution should continue with the next independent statement. This can be problematic in nested IF statements because it might terminate the inner block prematurely, leading to incorrect logic.

Why It Matters

Mastering nested IF statements is crucial for several reasons:

  1. Complex Decision Making: Many real-world problems, such as banking applications, require evaluating multiple conditions before arriving at a decision. Nested IF statements enable you to handle such complexity.
  2. Efficiency: Nested IF statements help you avoid writing redundant code by organizing your decision-making logic in a hierarchical manner.
  3. Debugging: When you encounter issues with your decision-making logic, nested IF statements help you identify the problematic condition more easily.

Imagine you are building a banking application to update account statuses based on their balance. Using nested IF statements, as shown in the example, helps you achieve this in an organized, clear, and efficient manner.

Ready to enhance your decision-making logic with nested IF statements? Let's dive into the practice section and apply these concepts together!

Enjoy this lesson? Now it's time to practice with Cosmo!
Practice is how you turn knowledge into actual skills.