== Why is this an issue? The ``++EVALUATE++`` statement allows implementing case structures in Cobol. Each case is managed by a ``++WHEN++`` phrase activated by specific test of a variable.The ``++WHEN OTHER++`` phrase allows managing all the cases which have not been taken into account by the previous ``++WHEN++`` phrases. If the variable to be tested contains a new value that is not currently managed then the absence of the ``++WHEN OTHER++`` phrase will lead a situation in which no process will be performed for this value and the program may have uncontrolled or undefined behavior. === Noncompliant code example [source,cobol] ---- A010-PRINCIPAL. EVALUATE Y5FTAR-PER-ECN-CTS WHEN '01' MOVE 'A' TO WS-CD-PER-CTS WHEN '02' MOVE 'S' TO WS-CD-PER-CTS WHEN '04' MOVE 'T' TO WS-CD-PER-CTS WHEN '12' MOVE 'M' TO WS-CD-PER-CTS END-EVALUATE. ---- === Compliant solution [source,cobol] ---- A010-PRINCIPAL. EVALUATE Y5FTAR-PER-ECN-CTS WHEN '01' MOVE 'A' TO WS-CD-PER-CTS WHEN '02' MOVE 'S' TO WS-CD-PER-CTS WHEN '04' MOVE 'T' TO WS-CD-PER-CTS WHEN '12' MOVE 'M' TO WS-CD-PER-CTS WHEN OTHERS MOVE 'O' TO WS-CD-PER-CTS END-EVALUATE. ---- include::../see.adoc[] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]