MainframeMaster

COBOL Tutorial

COBOL THEN - Quick Reference

Progress0 of 0 lessons

Overview

The THEN keyword in COBOL is used in conditional statements to specify actions that should be executed when a condition evaluates to true. It is a fundamental component of decision-making and flow control in COBOL programs.

Purpose and Usage

  • Conditional execution - Execute statements when conditions are true
  • Decision making - Implement business logic based on conditions
  • Flow control - Control program execution paths
  • Data processing - Perform operations based on data values
  • Error handling - Execute error handling logic when conditions are met

THEN vs ELSE in Conditional Statements

THEN: Execute when condition is TRUE
ELSE: Execute when condition is FALSE
Result: Complete conditional logic

THEN and ELSE work together to provide complete conditional execution logic.

Syntax and Usage

THEN is used in the PROCEDURE DIVISION as part of IF-THEN conditional statements to control program flow and implement decision logic.

Basic THEN Syntax

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
* Basic THEN syntax examples PROCEDURE DIVISION. * Simple IF-THEN statement IF CUSTOMER-BALANCE > 1000 THEN PERFORM PREMIUM-PROCESSING END-IF * IF-THEN-ELSE statement IF CUSTOMER-STATUS = 'A' THEN PERFORM ACTIVE-CUSTOMER-PROCESSING ELSE PERFORM INACTIVE-CUSTOMER-PROCESSING END-IF * Multiple statements in THEN IF TRANSACTION-AMOUNT > 5000 THEN MOVE 'HIGH-VALUE' TO TRANSACTION-TYPE PERFORM HIGH-VALUE-PROCESSING DISPLAY "High value transaction processed" END-IF * Nested IF-THEN statements IF CUSTOMER-TYPE = 'GOLD' THEN IF CUSTOMER-BALANCE > 10000 THEN PERFORM VIP-PROCESSING ELSE PERFORM STANDARD-GOLD-PROCESSING END-IF ELSE PERFORM REGULAR-PROCESSING END-IF

Basic THEN usage in conditional statements for decision making.

Complete THEN Program Example

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
* Complete COBOL program demonstrating THEN usage IDENTIFICATION DIVISION. PROGRAM-ID. THEN-DEMO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 01 CUSTOMER-DATA. 05 CUSTOMER-ID PIC 9(6). 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-BALANCE PIC 9(8)V99. 05 CUSTOMER-STATUS PIC X. 05 CUSTOMER-TYPE PIC X(10). 01 PROCESSING-RESULTS. 05 PROCESSING-TYPE PIC X(20). 05 DISCOUNT-RATE PIC 9(3)V99. 05 PROCESSING-STATUS PIC X(10). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM INITIALIZE-PROCESSING PERFORM PROCESS-CUSTOMER-DATA PERFORM DISPLAY-PROCESSING-RESULTS STOP RUN. INITIALIZE-PROCESSING. MOVE 123456 TO CUSTOMER-ID MOVE "John Smith" TO CUSTOMER-NAME MOVE 15000.50 TO CUSTOMER-BALANCE MOVE 'A' TO CUSTOMER-STATUS MOVE "GOLD" TO CUSTOMER-TYPE. PROCESS-CUSTOMER-DATA. * Process based on customer status IF CUSTOMER-STATUS = 'A' THEN PERFORM PROCESS-ACTIVE-CUSTOMER ELSE PERFORM PROCESS-INACTIVE-CUSTOMER END-IF. PROCESS-ACTIVE-CUSTOMER. * Process based on customer type IF CUSTOMER-TYPE = 'GOLD' THEN IF CUSTOMER-BALANCE > 10000 THEN MOVE 'VIP-PROCESSING' TO PROCESSING-TYPE MOVE 0.15 TO DISCOUNT-RATE PERFORM VIP-CUSTOMER-PROCESSING ELSE MOVE 'GOLD-PROCESSING' TO PROCESSING-TYPE MOVE 0.10 TO DISCOUNT-RATE PERFORM GOLD-CUSTOMER-PROCESSING END-IF ELSE IF CUSTOMER-TYPE = 'SILVER' THEN MOVE 'SILVER-PROCESSING' TO PROCESSING-TYPE MOVE 0.05 TO DISCOUNT-RATE PERFORM SILVER-CUSTOMER-PROCESSING ELSE MOVE 'STANDARD-PROCESSING' TO PROCESSING-TYPE MOVE 0.02 TO DISCOUNT-RATE PERFORM STANDARD-CUSTOMER-PROCESSING END-IF END-IF. PROCESS-INACTIVE-CUSTOMER. MOVE 'INACTIVE-PROCESSING' TO PROCESSING-TYPE MOVE 0.00 TO DISCOUNT-RATE PERFORM INACTIVE-CUSTOMER-PROCESSING. VIP-CUSTOMER-PROCESSING. DISPLAY "Processing VIP customer: " CUSTOMER-NAME MOVE 'COMPLETED' TO PROCESSING-STATUS. GOLD-CUSTOMER-PROCESSING. DISPLAY "Processing Gold customer: " CUSTOMER-NAME MOVE 'COMPLETED' TO PROCESSING-STATUS. SILVER-CUSTOMER-PROCESSING. DISPLAY "Processing Silver customer: " CUSTOMER-NAME MOVE 'COMPLETED' TO PROCESSING-STATUS. STANDARD-CUSTOMER-PROCESSING. DISPLAY "Processing Standard customer: " CUSTOMER-NAME MOVE 'COMPLETED' TO PROCESSING-STATUS. INACTIVE-CUSTOMER-PROCESSING. DISPLAY "Processing Inactive customer: " CUSTOMER-NAME MOVE 'COMPLETED' TO PROCESSING-STATUS. DISPLAY-PROCESSING-RESULTS. DISPLAY "=== PROCESSING RESULTS ===" DISPLAY "Customer ID: " CUSTOMER-ID DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Processing Type: " PROCESSING-TYPE DISPLAY "Discount Rate: " DISCOUNT-RATE DISPLAY "Processing Status: " PROCESSING-STATUS.

The program demonstrates comprehensive THEN usage in decision making.

Advanced THEN Usage

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
* Advanced THEN usage with complex conditional logic PROCEDURE DIVISION. ADVANCED-THEN-OPERATIONS. PERFORM COMPLEX-DECISION-MAKING PERFORM CONDITIONAL-DATA-PROCESSING PERFORM ERROR-HANDLING-LOGIC PERFORM BUSINESS-RULE-IMPLEMENTATION. COMPLEX-DECISION-MAKING. * Complex nested conditions with THEN IF CUSTOMER-AGE >= 18 THEN IF CUSTOMER-INCOME > 50000 THEN IF CUSTOMER-CREDIT-SCORE > 700 THEN PERFORM APPROVE-LOAN MOVE 'APPROVED' TO LOAN-STATUS ELSE PERFORM REVIEW-LOAN MOVE 'UNDER-REVIEW' TO LOAN-STATUS END-IF ELSE PERFORM DENY-LOAN MOVE 'DENIED' TO LOAN-STATUS END-IF ELSE PERFORM MINOR-APPLICATION-PROCESSING MOVE 'MINOR' TO LOAN-STATUS END-IF. CONDITIONAL-DATA-PROCESSING. * Conditional data processing with THEN IF TRANSACTION-TYPE = 'DEPOSIT' THEN IF TRANSACTION-AMOUNT > 10000 THEN PERFORM LARGE-DEPOSIT-PROCESSING MOVE 'LARGE-DEPOSIT' TO TRANSACTION-CATEGORY ELSE PERFORM STANDARD-DEPOSIT-PROCESSING MOVE 'STANDARD-DEPOSIT' TO TRANSACTION-CATEGORY END-IF ELSE IF TRANSACTION-TYPE = 'WITHDRAWAL' THEN IF TRANSACTION-AMOUNT > ACCOUNT-BALANCE THEN PERFORM INSUFFICIENT-FUNDS-PROCESSING MOVE 'INSUFFICIENT-FUNDS' TO TRANSACTION-CATEGORY ELSE PERFORM STANDARD-WITHDRAWAL-PROCESSING MOVE 'STANDARD-WITHDRAWAL' TO TRANSACTION-CATEGORY END-IF ELSE PERFORM UNKNOWN-TRANSACTION-PROCESSING MOVE 'UNKNOWN' TO TRANSACTION-CATEGORY END-IF. ERROR-HANDLING-LOGIC. * Error handling with THEN IF FILE-STATUS NOT = '00' THEN IF FILE-STATUS = '10' THEN PERFORM END-OF-FILE-PROCESSING ELSE IF FILE-STATUS = '23' THEN PERFORM FILE-NOT-FOUND-PROCESSING ELSE PERFORM GENERAL-ERROR-PROCESSING END-IF ELSE PERFORM NORMAL-FILE-PROCESSING END-IF. BUSINESS-RULE-IMPLEMENTATION. * Business rules with THEN IF ORDER-AMOUNT > 1000 THEN IF CUSTOMER-TYPE = 'PREMIUM' THEN MOVE 0.15 TO DISCOUNT-RATE PERFORM PREMIUM-DISCOUNT-PROCESSING ELSE MOVE 0.10 TO DISCOUNT-RATE PERFORM STANDARD-DISCOUNT-PROCESSING END-IF ELSE MOVE 0.00 TO DISCOUNT-RATE PERFORM NO-DISCOUNT-PROCESSING END-IF.

Advanced THEN usage with complex conditional logic and decision making.

Common Use Cases

THEN is essential in various scenarios where conditional processing, decision making, and flow control are required.

Business Logic Implementation

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
* Business logic implementation using THEN IDENTIFICATION DIVISION. PROGRAM-ID. BUSINESS-LOGIC-THEN. DATA DIVISION. WORKING-STORAGE SECTION. 01 BUSINESS-DATA. 05 ORDER-AMOUNT PIC 9(8)V99. 05 CUSTOMER-TYPE PIC X(10). 05 PAYMENT-METHOD PIC X(10). 05 SHIPPING-REGION PIC X(20). 01 BUSINESS-RESULTS. 05 DISCOUNT-RATE PIC 9(3)V99. 05 SHIPPING-COST PIC 9(6)V99. 05 PROCESSING-TYPE PIC X(20). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM CALCULATE-BUSINESS-RULES PERFORM APPLY-BUSINESS-LOGIC PERFORM DISPLAY-BUSINESS-RESULTS STOP RUN. CALCULATE-BUSINESS-RULES. * Calculate discount based on order amount and customer type IF ORDER-AMOUNT > 1000 THEN IF CUSTOMER-TYPE = 'PREMIUM' THEN MOVE 0.15 TO DISCOUNT-RATE MOVE 'PREMIUM-DISCOUNT' TO PROCESSING-TYPE ELSE IF CUSTOMER-TYPE = 'REGULAR' THEN MOVE 0.10 TO DISCOUNT-RATE MOVE 'REGULAR-DISCOUNT' TO PROCESSING-TYPE ELSE MOVE 0.05 TO DISCOUNT-RATE MOVE 'STANDARD-DISCOUNT' TO PROCESSING-TYPE END-IF ELSE MOVE 0.00 TO DISCOUNT-RATE MOVE 'NO-DISCOUNT' TO PROCESSING-TYPE END-IF. APPLY-BUSINESS-LOGIC. * Apply shipping costs based on region and payment method IF SHIPPING-REGION = 'INTERNATIONAL' THEN IF PAYMENT-METHOD = 'CREDIT-CARD' THEN MOVE 50.00 TO SHIPPING-COST ELSE MOVE 75.00 TO SHIPPING-COST END-IF ELSE IF SHIPPING-REGION = 'DOMESTIC' THEN IF ORDER-AMOUNT > 500 THEN MOVE 0.00 TO SHIPPING-COST ELSE MOVE 10.00 TO SHIPPING-COST END-IF ELSE MOVE 25.00 TO SHIPPING-COST END-IF. DISPLAY-BUSINESS-RESULTS. DISPLAY "=== BUSINESS LOGIC RESULTS ===" DISPLAY "Order Amount: $" ORDER-AMOUNT DISPLAY "Customer Type: " CUSTOMER-TYPE DISPLAY "Processing Type: " PROCESSING-TYPE DISPLAY "Discount Rate: " DISCOUNT-RATE DISPLAY "Shipping Cost: $" SHIPPING-COST.

Business logic implementation uses THEN for decision making and rule processing.

Data Validation and Processing

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
* Data validation and processing using THEN IDENTIFICATION DIVISION. PROGRAM-ID. DATA-VALIDATION-THEN. DATA DIVISION. WORKING-STORAGE SECTION. 01 VALIDATION-DATA. 05 INPUT-VALUE PIC X(50). 05 DATA-TYPE PIC X(10). 05 VALIDATION-RULE PIC X(20). 01 VALIDATION-RESULTS. 05 IS-VALID PIC X. 05 ERROR-MESSAGE PIC X(100). 05 PROCESSING-ACTION PIC X(20). PROCEDURE DIVISION. MAIN-LOGIC. PERFORM VALIDATE-INPUT-DATA PERFORM PROCESS-VALIDATED-DATA PERFORM DISPLAY-VALIDATION-RESULTS STOP RUN. VALIDATE-INPUT-DATA. * Validate data based on type and rules IF DATA-TYPE = 'NUMERIC' THEN IF INPUT-VALUE IS NUMERIC THEN MOVE 'Y' TO IS-VALID MOVE 'PROCESS-NUMERIC' TO PROCESSING-ACTION ELSE MOVE 'N' TO IS-VALID MOVE "Input must be numeric" TO ERROR-MESSAGE END-IF ELSE IF DATA-TYPE = 'ALPHABETIC' THEN IF INPUT-VALUE IS ALPHABETIC THEN MOVE 'Y' TO IS-VALID MOVE 'PROCESS-ALPHABETIC' TO PROCESSING-ACTION ELSE MOVE 'N' TO IS-VALID MOVE "Input must be alphabetic" TO ERROR-MESSAGE END-IF ELSE IF DATA-TYPE = 'EMAIL' THEN IF INPUT-VALUE CONTAINS '@' THEN MOVE 'Y' TO IS-VALID MOVE 'PROCESS-EMAIL' TO PROCESSING-ACTION ELSE MOVE 'N' TO IS-VALID MOVE "Invalid email format" TO ERROR-MESSAGE END-IF ELSE MOVE 'N' TO IS-VALID MOVE "Unknown data type" TO ERROR-MESSAGE END-IF END-IF. PROCESS-VALIDATED-DATA. * Process data based on validation results IF IS-VALID = 'Y' THEN IF PROCESSING-ACTION = 'PROCESS-NUMERIC' THEN PERFORM NUMERIC-DATA-PROCESSING ELSE IF PROCESSING-ACTION = 'PROCESS-ALPHABETIC' THEN PERFORM ALPHABETIC-DATA-PROCESSING ELSE IF PROCESSING-ACTION = 'PROCESS-EMAIL' THEN PERFORM EMAIL-DATA-PROCESSING END-IF ELSE PERFORM ERROR-HANDLING END-IF. NUMERIC-DATA-PROCESSING. DISPLAY "Processing numeric data: " INPUT-VALUE. ALPHABETIC-DATA-PROCESSING. DISPLAY "Processing alphabetic data: " INPUT-VALUE. EMAIL-DATA-PROCESSING. DISPLAY "Processing email data: " INPUT-VALUE. ERROR-HANDLING. DISPLAY "Error: " ERROR-MESSAGE. DISPLAY-VALIDATION-RESULTS. DISPLAY "=== VALIDATION RESULTS ===" DISPLAY "Input Value: " INPUT-VALUE DISPLAY "Data Type: " DATA-TYPE DISPLAY "Is Valid: " IS-VALID DISPLAY "Processing Action: " PROCESSING-ACTION.

Data validation and processing uses THEN for conditional data handling.

Error Handling and Recovery

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
* Error handling and recovery using THEN IDENTIFICATION DIVISION. PROGRAM-ID. ERROR-HANDLING-THEN. DATA DIVISION. WORKING-STORAGE SECTION. 01 ERROR-DATA. 05 ERROR-CODE PIC 9(4). 05 ERROR-TYPE PIC X(20). 05 ERROR-SEVERITY PIC X(10). 01 RECOVERY-ACTIONS. 05 RECOVERY-ACTION PIC X(30). 05 RETRY-COUNT PIC 9(2). 05 MAX-RETRIES PIC 9(2) VALUE 3. PROCEDURE DIVISION. MAIN-LOGIC. PERFORM HANDLE-ERROR-SCENARIOS PERFORM IMPLEMENT-RECOVERY-LOGIC PERFORM DISPLAY-ERROR-RESULTS STOP RUN. HANDLE-ERROR-SCENARIOS. * Handle different error scenarios with THEN IF ERROR-CODE = 1001 THEN MOVE 'FILE-ERROR' TO ERROR-TYPE IF ERROR-SEVERITY = 'CRITICAL' THEN PERFORM CRITICAL-FILE-ERROR-HANDLING ELSE PERFORM NON-CRITICAL-FILE-ERROR-HANDLING END-IF ELSE IF ERROR-CODE = 2001 THEN MOVE 'DATABASE-ERROR' TO ERROR-TYPE IF RETRY-COUNT < MAX-RETRIES THEN PERFORM RETRY-DATABASE-OPERATION ELSE PERFORM ESCALATE-DATABASE-ERROR END-IF ELSE IF ERROR-CODE = 3001 THEN MOVE 'NETWORK-ERROR' TO ERROR-TYPE IF ERROR-SEVERITY = 'TEMPORARY' THEN PERFORM TEMPORARY-NETWORK-ERROR-HANDLING ELSE PERFORM PERMANENT-NETWORK-ERROR-HANDLING END-IF ELSE MOVE 'UNKNOWN-ERROR' TO ERROR-TYPE PERFORM UNKNOWN-ERROR-HANDLING END-IF END-IF. IMPLEMENT-RECOVERY-LOGIC. * Implement recovery logic based on error type IF ERROR-TYPE = 'FILE-ERROR' THEN IF ERROR-SEVERITY = 'CRITICAL' THEN MOVE 'RESTORE-FROM-BACKUP' TO RECOVERY-ACTION PERFORM CRITICAL-RECOVERY-PROCEDURE ELSE MOVE 'CREATE-NEW-FILE' TO RECOVERY-ACTION PERFORM NON-CRITICAL-RECOVERY-PROCEDURE END-IF ELSE IF ERROR-TYPE = 'DATABASE-ERROR' THEN MOVE 'RETRY-OPERATION' TO RECOVERY-ACTION PERFORM DATABASE-RECOVERY-PROCEDURE ELSE IF ERROR-TYPE = 'NETWORK-ERROR' THEN MOVE 'SWITCH-TO-BACKUP' TO RECOVERY-ACTION PERFORM NETWORK-RECOVERY-PROCEDURE ELSE MOVE 'LOG-AND-CONTINUE' TO RECOVERY-ACTION PERFORM UNKNOWN-RECOVERY-PROCEDURE END-IF END-IF. CRITICAL-FILE-ERROR-HANDLING. DISPLAY "Critical file error detected - initiating recovery". NON-CRITICAL-FILE-ERROR-HANDLING. DISPLAY "Non-critical file error - continuing with processing". RETRY-DATABASE-OPERATION. ADD 1 TO RETRY-COUNT DISPLAY "Retrying database operation - attempt " RETRY-COUNT. ESCALATE-DATABASE-ERROR. DISPLAY "Database error escalated - maximum retries exceeded". TEMPORARY-NETWORK-ERROR-HANDLING. DISPLAY "Temporary network error - waiting for recovery". PERMANENT-NETWORK-ERROR-HANDLING. DISPLAY "Permanent network error - switching to backup". UNKNOWN-ERROR-HANDLING. DISPLAY "Unknown error encountered - logging for analysis". DISPLAY-ERROR-RESULTS. DISPLAY "=== ERROR HANDLING RESULTS ===" DISPLAY "Error Code: " ERROR-CODE DISPLAY "Error Type: " ERROR-TYPE DISPLAY "Error Severity: " ERROR-SEVERITY DISPLAY "Recovery Action: " RECOVERY-ACTION DISPLAY "Retry Count: " RETRY-COUNT.

Error handling and recovery uses THEN for conditional error processing.

Best Practices and Tips

Following these best practices ensures effective use of THEN in COBOL applications for better readability and maintainability.

THEN Best Practices

  • Write clear, readable conditions - Use descriptive condition names and logic
  • Use meaningful variable names - Choose names that indicate the purpose of conditions
  • Structure nested statements properly - Use proper indentation for readability
  • Handle all possible conditions - Include ELSE clauses for complete logic
  • Avoid deeply nested structures - Keep nesting levels manageable for maintainability
  • Document complex logic - Add comments for complex conditional logic

Conditional Statement Patterns

PatternUsageExample
Simple IF-THENSingle condition with one actionIF condition THEN action END-IF
IF-THEN-ELSETwo-way decision makingIF condition THEN action1 ELSE action2 END-IF
Nested IF-THENComplex decision logicIF A THEN IF B THEN ACTION END-IF END-IF
Multiple ConditionsMultiple condition checkingIF condition1 AND condition2 THEN action END-IF
Conditional ProcessingConditional subroutine callsIF condition THEN PERFORM subroutine END-IF
Error HandlingConditional error processingIF error-condition THEN PERFORM error-handling END-IF

Code Structure Guidelines

  • Consistent indentation - Use consistent indentation for nested statements
  • Logical grouping - Group related conditions and actions together
  • Early returns - Use early returns to reduce nesting levels
  • Condition complexity - Break complex conditions into simpler parts
  • Action separation - Separate complex actions into subroutines
  • Error handling - Handle errors consistently throughout the program

THEN Quick Reference

AspectDescriptionExample
LocationPROCEDURE DIVISIONIn conditional statements
Basic SyntaxIF condition THEN action END-IFIF A > B THEN MOVE A TO RESULT END-IF
With ELSEIF condition THEN action1 ELSE action2 END-IFIF VALID THEN PROCESS ELSE ERROR END-IF
NestedNested IF-THEN statementsIF A THEN IF B THEN ACTION END-IF END-IF
Multiple ActionsMultiple statements in THENIF A > B THEN MOVE A TO RESULT DISPLAY "Done" END-IF

Test Your Knowledge

1. What is the primary purpose of THEN in COBOL?

  • To define arithmetic operations
  • To specify actions to execute when a condition is true in IF-THEN statements
  • To control file operations
  • To define data types

2. Where is THEN typically used in a COBOL program?

  • In the DATA DIVISION for data definitions
  • In the PROCEDURE DIVISION as part of IF-THEN conditional statements
  • In the ENVIRONMENT DIVISION for system configuration
  • In the IDENTIFICATION DIVISION

3. What types of operations can THEN handle?

  • Only file operations
  • Only database operations
  • Any COBOL statements and operations that can be executed when a condition is true
  • Only mathematical calculations

4. How does THEN differ from ELSE in IF statements?

  • They are identical in function
  • THEN executes when condition is true, ELSE executes when condition is false
  • THEN only works with numeric data
  • ELSE is more advanced than THEN

5. Which of the following is a common use of THEN?

  • File sorting operations
  • Conditional processing, decision making, and controlling program flow based on conditions
  • Database operations
  • Mathematical calculations

Frequently Asked Questions