मॉड्यूल पाठ (2/2)
IF और EVALUATE के साथ निर्णय
COBOL में निर्णय लेना मुख्य रूप से IF सशर्त विवरण और बहु-शाखा चयन संरचना EVALUATE (आधुनिक भाषाओं में switch या match के अनुरूप) का उपयोग करके किया जाता है।
IF सशर्त विवरण
IF कथन का मूल सिंटैक्स है:
IF condition
statements-if-true
ELSE
statements-if-false
END-IF.आधुनिक COBOL संस्करणों (COBOL-85 और बाद में) में, कथन को केवल अंतिम अवधि . पर निर्भर होने के बजाय स्पष्ट रूप से END-IF. के साथ समाप्त होना चाहिए, जिससे पार्सिंग और तर्क त्रुटियों में काफी कमी आती है।
सामान्य शर्तें
- इससे बड़ा:
>याGREATER THAN - इससे कम:
<याLESS THAN - इसके बराबर:
=याEQUAL TO - इससे बड़ा या इसके बराबर:
>=याGREATER THAN OR EQUAL TO - इससे कम या इसके बराबर:
<=याLESS THAN OR EQUAL TO
IF WS-BALANCE < 0
DISPLAY "OVERDRAWN"
ELSE
DISPLAY "ACCOUNT ACTIVE"
END-IF.मूल्यांकन कथन
जब हमें एक चर की तुलना कई अलग-अलग मानों से करने की आवश्यकता होती है, तो नेस्टेड IF कथन जटिल हो सकते हैं। EVALUATE कथन विकल्पों को साफ़ तरीके से संरचित करके इसका समाधान करता है:
EVALUATE WS-USER-ROLE
WHEN "ADMIN"
DISPLAY "FULL ACCESS"
WHEN "EDITOR"
DISPLAY "EDIT ACCESS"
WHEN OTHER
DISPLAY "LIMITED ACCESS"
END-EVALUATE.WHEN OTHER: फ़ॉलबैक शाखा की पहचान करता है (आधुनिक भाषाओं मेंdefaultया अंतिमelseके बराबर)।END-EVALUATE.: संरचना को बंद करता है।
खुद कोशिश करना
एक IF-ELSE-END-IF ब्लॉक लिखें जो जांच करता है कि वेरिएबल WS-USER-AGE 18 से अधिक या उसके बराबर है या नहीं। यदि सत्य है, तो 'वयस्क' प्रिंट करें, अन्यथा DISPLAY का उपयोग करके 'MINOR' प्रिंट करें।
संकेत दिखाएँ
तुलना के लिए >=, आउटपुट के लिए DISPLAY और END-IF का उपयोग करें। (ब्लॉक के अंत में बिंदु के साथ)।
3 प्रयासों के बाद समाधान उपलब्ध है
WS-STATUS वैरिएबल की जांच करने के लिए EVALUATE संरचना को पूरा करें। यदि मान 'ए' है तो 'सक्रिय' प्रिंट करें, यदि यह 'आई' है तो 'निष्क्रिय' प्रिंट करें, अन्यथा किसी अन्य मूल्य के लिए 'अज्ञात' प्रिंट करें।
संकेत दिखाएँ
प्रत्येक WHEN शाखा के बाद उसका DISPLAY लिखें और फ़ॉलबैक को संभालने के लिए WHEN अन्य का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है