Pelajaran modul (2/2)
Keputusan dengan IF dan EVALUATE
Pengambilan keputusan di COBOL dilakukan terutama menggunakan pernyataan kondisional IF dan struktur pemilihan multi-cabang EVALUATE (analog dengan switch atau match dalam bahasa modern).
Pernyataan Bersyarat IF
Sintaks dasar dari pernyataan IF adalah:
IF condition
statements-if-true
ELSE
statements-if-false
END-IF.Dalam versi COBOL modern (COBOL-85 dan yang lebih baru), pernyataan harus secara eksplisit diakhiri dengan END-IF. alih-alih hanya mengandalkan periode terakhir ., sehingga secara signifikan mengurangi kesalahan penguraian dan logika.
Kondisi Umum
- Lebih besar dari:
>atauGREATER THAN - Kurang dari:
<atauLESS THAN - Setara dengan:
=atauEQUAL TO - Lebih besar atau sama dengan:
>=atauGREATER THAN OR EQUAL TO - Kurang dari atau sama dengan:
<=atauLESS THAN OR EQUAL TO
IF WS-BALANCE < 0
DISPLAY "OVERDRAWN"
ELSE
DISPLAY "ACCOUNT ACTIVE"
END-IF.Pernyataan EVALUASI
Saat kita perlu membandingkan suatu variabel dengan beberapa nilai diskrit, pernyataan IF yang bertumpuk bisa menjadi rumit. Pernyataan EVALUATE menyelesaikan masalah ini dengan menyusun pilihan dengan cara yang bersih:
EVALUATE WS-USER-ROLE
WHEN "ADMIN"
DISPLAY "FULL ACCESS"
WHEN "EDITOR"
DISPLAY "EDIT ACCESS"
WHEN OTHER
DISPLAY "LIMITED ACCESS"
END-EVALUATE.WHEN OTHER: Mengidentifikasi cabang cadangan (setara dengandefaultatauelseterakhir dalam bahasa modern).END-EVALUATE.: Menutup struktur.
Cobalah sendiri
Tulis blok IF-ELSE-END-IF yang memeriksa apakah variabel WS-USER-AGE lebih besar atau sama dengan 18. Jika benar, cetak 'DEWASA', jika tidak, cetak 'MINOR' menggunakan DISPLAY.
Tunjukkan petunjuk
Gunakan >= untuk perbandingan, DISPLAY untuk output, dan END-IF. (dengan titik di ujung blok).
Solusi tersedia setelah 3 upaya
Lengkapi struktur EVALUATE untuk memeriksa variabel WS-STATUS. Jika nilainya 'A' cetak 'AKTIF', jika 'I' cetak 'INAKTIF', sebaliknya untuk nilai lainnya cetak 'TIDAK DIKETAHUI'.
Tunjukkan petunjuk
Tulis setiap cabang WHEN diikuti dengan DISPLAY-nya, dan gunakan WHEN OTHER untuk menangani fallback.
Solusi tersedia setelah 3 upaya