मुख्य सामग्री पर जाएं
मॉड्यूल 2 · पाठ 2 का 2पाठ्यक्रम में 4/10~12 min
मॉड्यूल पाठ (2/2)

IF और EVALUATE के साथ निर्णय

COBOL में निर्णय लेना मुख्य रूप से IF सशर्त विवरण और बहु-शाखा चयन संरचना EVALUATE (आधुनिक भाषाओं में switch या match के अनुरूप) का उपयोग करके किया जाता है।

IF सशर्त विवरण

IF कथन का मूल सिंटैक्स है:

COBOL
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
COBOL
IF WS-BALANCE < 0
    DISPLAY "OVERDRAWN"
ELSE
    DISPLAY "ACCOUNT ACTIVE"
END-IF.

मूल्यांकन कथन

जब हमें एक चर की तुलना कई अलग-अलग मानों से करने की आवश्यकता होती है, तो नेस्टेड IF कथन जटिल हो सकते हैं। EVALUATE कथन विकल्पों को साफ़ तरीके से संरचित करके इसका समाधान करता है:

COBOL
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.: संरचना को बंद करता है।

खुद कोशिश करना

व्यायाम#cobol.m2.l2.e1
प्रयास: 0लोड हो रहा है...

एक IF-ELSE-END-IF ब्लॉक लिखें जो जांच करता है कि वेरिएबल WS-USER-AGE 18 से अधिक या उसके बराबर है या नहीं। यदि सत्य है, तो 'वयस्क' प्रिंट करें, अन्यथा DISPLAY का उपयोग करके 'MINOR' प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

तुलना के लिए >=, आउटपुट के लिए DISPLAY और END-IF का उपयोग करें। (ब्लॉक के अंत में बिंदु के साथ)।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम#cobol.m2.l2.e2
प्रयास: 0लोड हो रहा है...

WS-STATUS वैरिएबल की जांच करने के लिए EVALUATE संरचना को पूरा करें। यदि मान 'ए' है तो 'सक्रिय' प्रिंट करें, यदि यह 'आई' है तो 'निष्क्रिय' प्रिंट करें, अन्यथा किसी अन्य मूल्य के लिए 'अज्ञात' प्रिंट करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

प्रत्येक WHEN शाखा के बाद उसका DISPLAY लिखें और फ़ॉलबैक को संभालने के लिए WHEN अन्य का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है