مرکزی مواد پر جائیں
ماڈیول 3 · سبق 2 از 2کورس میں 6/10~15 min
ماڈیول اسباق (2/2)

لوپس اور تکرار

COBOL میں لوپس اور تکراری تعمیرات for یا while جیسے کلیدی الفاظ سے متعین نہیں ہوتے ہیں، بلکہ اس کے بجائے اسی PERFORM بیان کی نحوی تغیرات کا استعمال کرتے ہیں۔

فکسڈ عددی لوپس (پرفارم ٹائمز)

اگر ہمیں کسی پیراگراف کے عمل کو ایک مقررہ تعداد میں دہرانے کی ضرورت ہو، تو ہم TIMES موڈیفائر کو PERFORM کمانڈ میں شامل کر سکتے ہیں۔

COBOL
PERFORM PROCESS-LINE 10 TIMES.

اس صورت میں، مرتب کرنے والا PROCESS-LINE پیراگراف کو ٹھیک 10 بار انجام دے گا، پھر کوڈ کی لکیری عمل کو دوبارہ شروع کرے گا۔

مشروط لوپس (پرفارم جب تک)

اعادہ کرنے کے لیے جب تک کہ کوئی خاص حالت درست نہ ہو جائے (ایک الٹ while لوپ کے برابر)، ہم PERFORM ... UNTIL بیان استعمال کرتے ہیں۔

COBOL
PERFORM INCR-COUNTER UNTIL WS-COUNTER > 5.
COBOL
PROCEDURE DIVISION.
MAIN-PROCEDURE.
    PERFORM PROCESS-ITEM UNTIL WS-COUNTER > 3.
    STOP RUN.

PROCESS-ITEM.
    DISPLAY "Counter: " WS-COUNTER.
    ADD 1 TO WS-COUNTER.

---

## Try it yourself

<CobolExercise
  id="cobol.m3.l2.e1"
  prompt="Write a statement inside MAIN-PROCEDURE to execute the PROCESS-ITEM paragraph exactly 10 times."
  starter={`       PROCEDURE DIVISION.\n       MAIN-PROCEDURE.\n           * WRITE CODE HERE\n           STOP RUN.\n`}
  solution={`       PROCEDURE DIVISION.\n       MAIN-PROCEDURE.\n           PERFORM PROCESS-ITEM 10 TIMES.\n           STOP RUN.\n`}
  rules={{
    requiredKeywords: ['PERFORM PROCESS-ITEM', '10', 'TIMES.', 'STOP RUN.'],
  }}
  hint="Use the syntax: PERFORM PROCESS-ITEM 10 TIMES."
/>

<CobolExercise
  id="cobol.m3.l2.e2"
  prompt="Repeatedly execute the PROCESS-STEP paragraph until the WS-COUNTER variable becomes greater than 5."
  starter={`       PROCEDURE DIVISION.\n       MAIN-PROCEDURE.\n           * WRITE CODE HERE\n           STOP RUN.\n`}
  solution={`       PROCEDURE DIVISION.\n       MAIN-PROCEDURE.\n           PERFORM PROCESS-STEP UNTIL WS-COUNTER > 5.\n           STOP RUN.\n`}
  rules={{
    requiredKeywords: ['PERFORM PROCESS-STEP', 'UNTIL', 'WS-COUNTER', '>', '5', 'STOP RUN.'],
  }}
  hint="Use the syntax: PERFORM PROCESS-STEP UNTIL WS-COUNTER > 5."
/>