الانتقال إلى المحتوى الرئيسي
الوحدة 2 · الدرس 2 من 24/10 في الدورة~12 min
دروس الوحدة (2/2)

القرارات مع IF والتقييم

يتم اتخاذ القرار في 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.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم >= للمقارنة، وDISPLAY للإخراج، وEND-IF. (مع النقطة في نهاية الكتلة).

الحل متاح بعد 3 من المحاولات

تمرين#cobol.m2.l2.e2
المحاولات: 0جارٍ التحميل…

أكمل بنية التقييم للتحقق من متغير WS-STATUS. إذا كانت القيمة "A" فاطبع "ACTIVE"، وإذا كانت "I" فاطبع "INACTIVE"، وإلا لأي قيمة أخرى فاطبع "UNKNOWN".

جارٍ تحميل المحرر…
إظهار التلميح

اكتب كل فرع "متى" متبوعًا بالعرض الخاص به، واستخدم "متى آخر" للتعامل مع الإجراء الاحتياطي.

الحل متاح بعد 3 من المحاولات