
Ved Renden 31 2870 Dyssegaard Tel. +45 23 34 54 43
| 
MainframeSupports tip uge 45/2008:
I COBOL er det muligt at skrive betingelser på næsten samme måde, som når man
anvender almindeligt skriftsprog. Et eksempel: "farven er grøn, gul eller rød" kan
skrives som FARVE = 'GRØN' OR 'GUL' OR 'RØD', hvor man i andre programmeringssprog
er nødt til at skrive FARVE = 'GRØN' OR FARVE = 'GUL' OR FARVE = 'RØD' for at opnå
samme effekt. Det er
faktisk muligt at forkorte andre betingelser end OR, men man skal nok lige prøve,
om man opnår det forventede resultat før endelig anvendelse i produktion.
Hvis jeg nu formulerer, at "farven skal være grøn, gul eller rød og være fremstillet
i danmark, så vil jeg i andre programmeringssprog vælge at skrive
(FARVE = 'GRØN' OR FARVE = 'GUL' OR FARVE = 'RØD') AND FARVELAND = 'DANMARK', mens jeg i
COBOL fristes til at skrive FARVE = 'GRØN' OR 'GUL' OR 'RØD' AND FARVELAND = 'DANMARK'.
Desværre fortolker COBOL denne betingelse som
FARVE = 'GRØN' OR FARVE = 'GUL' OR (FARVE = 'RØD' AND FARVELAND = 'DANMARK'), og dermed virker
betingelsen kun som forventet, når FARVE er sat til 'RØD'. Av, av, av, den har drillet
mange programmer på den installation, jeg arbejder på for tiden, og resulteret i en del
produktionsfejl. Man skal altså huske at sætte parenteser i sine betingelser, når man
kombinerer AND og OR med opremsninger af værdier. Den ønskede effekt opnås i det nævnte
eksempel ved at skrive (FARVE = 'GRØN' OR 'GUL' OR 'RØD') AND FARVELAND = 'DANMARK', selv om
det langt fra er indlysende.
Forrige danske tip
Last tip in english
Tip oversigten
|