Modül dersleri (2/2)
IF ve EVALUATE ile kararlar
COBOL'da karar verme, öncelikle IF koşullu ifade ve çok dallı seçim yapısı EVALUATE (modern dillerdeki switch veya match'ye benzer) kullanılarak gerçekleştirilir.
IF Koşullu İfadesi
IF ifadesinin temel sözdizimi şöyledir:
IF condition
statements-if-true
ELSE
statements-if-false
END-IF.Modern COBOL sürümlerinde (COBOL-85 ve üzeri), yalnızca . son noktasına dayanmak yerine ifadenin açıkça END-IF. ile bitmesi gerekir; bu da ayrıştırma ve mantık hatalarını önemli ölçüde azaltır.
Ortak Koşullar
- Şundan büyük:
>veyaGREATER THAN - Şundan az:
<veyaLESS THAN - Şuna eşittir:
=veyaEQUAL TO - Büyük veya eşittir:
>=veyaGREATER THAN OR EQUAL TO - Küçük veya eşittir:
<=veyaLESS THAN OR EQUAL TO
IF WS-BALANCE < 0
DISPLAY "OVERDRAWN"
ELSE
DISPLAY "ACCOUNT ACTIVE"
END-IF.DEĞERLENDİRME Beyanı
Bir değişkeni birden çok ayrı değerle karşılaştırmamız gerektiğinde, iç içe geçmiş IF ifadeleri karmaşık hale gelebilir. EVALUATE ifadesi, seçenekleri temiz bir şekilde yapılandırarak bu sorunu çözer:
EVALUATE WS-USER-ROLE
WHEN "ADMIN"
DISPLAY "FULL ACCESS"
WHEN "EDITOR"
DISPLAY "EDIT ACCESS"
WHEN OTHER
DISPLAY "LIMITED ACCESS"
END-EVALUATE.WHEN OTHER: Geri dönüş dalını tanımlar (modern dillerdedefaultveya sonelseile eşdeğerdir).END-EVALUATE.: Yapıyı kapatır.
Kendin dene
WS-USER-AGE değişkeninin 18'den büyük veya ona eşit olup olmadığını kontrol eden bir IF-ELSE-END-IF bloğu yazın. Doğruysa, 'YETİŞKİN' yazdırın, aksi takdirde DISPLAY'i kullanarak 'MINOR' yazdırın.
İpucu göster
Karşılaştırma için >=, çıktı için DISPLAY ve END-IF kullanın. (bloğun sonundaki nokta ile).
3 denemeden sonra çözüm mevcut
WS-STATUS değişkenini kontrol etmek için DEĞERLENDİRME yapısını tamamlayın. Değer 'A' ise 'AKTİF' yazdırın, 'I' ise 'AKTİF DEĞİL' yazdırın, aksi halde herhangi bir değer için 'BİLİNMİYOR' yazdırın.
İpucu göster
Her WHEN dalını ve ardından DISPLAY'ini yazın ve geri dönüşü işlemek için WHEN OTHER'ı kullanın.
3 denemeden sonra çözüm mevcut