💻 COBOL
COBOL Conditional Statements
Beginner 🕑 20 min read
👁 2 views
IF Statement
The IF statement is used for conditional execution in COBOL. It supports nested conditions and multiple branches.
Basic IF Syntax
IF condition statement(s) END-IF.
IF-ELSE Syntax
IF condition statement(s) ELSE statement(s) END-IF.
Relational Operators
| Operator | Meaning |
|---|---|
| = or EQUAL TO | Equal |
| > or GREATER THAN | Greater than |
| < or LESS THAN | Less than |
| >= or GREATER THAN OR EQUAL | Greater or equal |
| <= or LESS THAN OR EQUAL | Less or equal |
| NOT = | Not equal |
Logical Operators
- AND - Both conditions must be true
- OR - Either condition must be true
- NOT - Negates the condition
Class Conditions
- NUMERIC - Check if data is numeric
- ALPHABETIC - Check if data is alphabetic
- ALPHABETIC-LOWER - Check for lowercase
- ALPHABETIC-UPPER - Check for uppercase
EVALUATE Statement
EVALUATE is COBOL's equivalent of switch/case statement. It provides a cleaner way to handle multiple conditions.
Code Example
PROCEDURE DIVISION.
CONDITIONAL-EXAMPLES.
* Simple IF
IF WS-AGE >= 18
DISPLAY "ADULT"
END-IF.
* IF-ELSE
IF WS-BALANCE > 0
DISPLAY "POSITIVE BALANCE"
ELSE
DISPLAY "NEGATIVE OR ZERO BALANCE"
END-IF.
* Nested IF
IF WS-SCORE >= 90
MOVE "A" TO WS-GRADE
ELSE IF WS-SCORE >= 80
MOVE "B" TO WS-GRADE
ELSE IF WS-SCORE >= 70
MOVE "C" TO WS-GRADE
ELSE
MOVE "F" TO WS-GRADE
END-IF.
* Using AND/OR
IF WS-AGE >= 18 AND WS-STATUS = "ACTIVE"
PERFORM PROCESS-APPLICATION
END-IF.
* Class condition
IF WS-INPUT IS NUMERIC
COMPUTE WS-RESULT = WS-INPUT * 2
ELSE
DISPLAY "INVALID INPUT"
END-IF.
* EVALUATE statement
EVALUATE WS-TRANS-CODE
WHEN "A"
PERFORM ADD-RECORD
WHEN "U"
PERFORM UPDATE-RECORD
WHEN "D"
PERFORM DELETE-RECORD
WHEN OTHER
DISPLAY "INVALID CODE"
END-EVALUATE.
* EVALUATE TRUE
EVALUATE TRUE
WHEN WS-AMOUNT > 10000
MOVE "HIGH" TO WS-CATEGORY
WHEN WS-AMOUNT > 5000
MOVE "MEDIUM" TO WS-CATEGORY
WHEN OTHER
MOVE "LOW" TO WS-CATEGORY
END-EVALUATE.
STOP RUN.