== Why is this an issue?

While ``++END++`` will adequately close a statement, it is less clear than the use of the relevant, statement-specific ``++ENDxx++``. Thus, the statement-specific version is preferred to facilitate code maintenance and enhance clarity.


This rule is applied to the following operations: ``++CASxx++``, ``++DO++``, ``++DOU++``, ``++DOUxx++``, ``++DOW++``, ``++DOWxx++``, ``++FOR++``, ``++IF++``, ``++IFxx++`` and ``++SELECT++`` groups.


=== Noncompliant code example

[source,rpg]
----
C     W0PKEX        DOUEQ     W0ON   
...
C                   END     

C     W0PKEX        IFEQ      W0ON   
...
C                   END  
----

[source,rpg]
----
 /free
  if x = 1;
    ...
  end;
 /end-free
----


=== Compliant solution

[source,rpg]
----
C     W0PKEX        DOUEQ     W0ON   
...
C                   ENDDO     

C     W0PKEX        IFEQ      W0ON   
...
C                   ENDIF     
----

[source,rpg]
----
 /free
  if x = 1;
    ...
  endif;
 /end-free
----


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Use the "[ENDxx]" statement to close this [xxx] clause.


endif::env-github,rspecator-view[]
