I want to know what is the better way to reset a counter. I have the following:
03 WS-SEQ-NO PIC 9(04).
When WS-SEQ-NO is 9999, and i increment it, or if i move 10000 into it, it will get truncated, and become 0000. This is actually the desired result as i want it to tick over to 0000 after 9999. However, i am interested to know if this is acceptable by COBOL programming standards? Or should i be using an IF condition to reset it. E.g:
IF WS-SEQ-NO = 9999
MOVE 0 TO WS-SEQ-NO
ELSE
ADD 1 TO WS-SEQ-NO
END-IF.
Also, this code will only be executed once a month or so, and it is not in a loop, so i'm not desperate to avoid having the additional IF condition. I'm merely wondering if it is 'legal', so to speak, in a programming standards sense, to rely on this COBOL feature that truncates the number rather than coding for it. Thanks!
I would keep the condition and define the counter this way
If you need to modify your counter to
PIC 9(5)
, you won't forget to modify the condition because you won't have to.You'll only need to modify the level 88.