IF vs Evaluate Numeric And Alpha Compare in COBOL
Photo by AbsolutVision on Unsplash

This post is useful for COBOL developers. When you compare Numeric to Alpha-numeric, both behave differently. This post explains it with examples.

1. Evaluate Logic

01 MONTH_NUM pic 9(01) value 1.
Evaluate MONTH_NUM
WHEN ‘1’
Perform Jan-section
WHEN other
Perform None-section.

When you execute the above logic, the flow goes to WHEN OTHER. The reason is it checks for exact values (Numeric). Also, the Evaluate does not convert to Unicode. That means Numeric and Alphanumeric values mismatched.

2. IF Logic

IF month_num = ‘01’
Perform Jan-section
Perform None-section

When you execute the above logic. It converts, both numeric and alpha to Unicode, and will Perform Jan-section.

To find the difference between IF and Evaluate and use it in your programs correctly.