Modul 3 · Pelajaran 2 dari 26/10 dalam kursus~15 min
Pelajaran modul (2/2)
Loop dan Iterasi
Perulangan dan konstruksi berulang di COBOL tidak ditentukan oleh kata kunci seperti for atau while, melainkan menggunakan variasi sintaksis dari pernyataan PERFORM yang sama.
Loop Numerik Tetap (PERFORM KALI)
Jika kita perlu mengulangi eksekusi paragraf beberapa kali, kita dapat menambahkan pengubah TIMES ke perintah PERFORM.
COBOL
PERFORM PROCESS-LINE 10 TIMES.Dalam hal ini, kompiler akan mengeksekusi paragraf PROCESS-LINE tepat 10 kali, kemudian melanjutkan eksekusi kode secara linier.
Loop Bersyarat (PERFORM SAMPAI)
Untuk melakukan iterasi hingga kondisi tertentu menjadi benar (setara dengan perulangan while terbalik), kita menggunakan pernyataan 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."
/>