مرکزی مواد پر جائیں
ماڈیول 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 سے بڑا یا اس کے برابر ہے۔ اگر درست ہے تو، 'ADULT' پرنٹ کریں، بصورت دیگر ڈسپلے کا استعمال کرتے ہوئے 'MINOR' پرنٹ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

موازنہ کے لیے >=، آؤٹ پٹ کے لیے DISPLAY، اور END-IF استعمال کریں۔ (بلاک کے آخر میں ڈاٹ کے ساتھ)۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#cobol.m2.l2.e2
کوششیں: 0لوڈ ہو رہا ہے…

WS-STATUS متغیر کو چیک کرنے کے لیے EVALUATE ڈھانچہ مکمل کریں۔ اگر قدر 'A' پرنٹ 'ACTIVE' ہے، اگر یہ 'I' ہے تو 'غیر فعال' پرنٹ کریں، بصورت دیگر کسی اور ویلیو پرنٹ کے لیے 'UNKNOWN'۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

ہر WHEN برانچ کے بعد اس کا ڈسپلے لکھیں، اور فال بیک کو سنبھالنے کے لیے WHEN OTHER کا استعمال کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔