CASE ( ABAP Keyword)

CASE ( ABAP Keyword) introduction & Details

CASE

Basic
form
CASE f.
Effect Case distinction.

Depending on the current
contents of a field, this statement executes one of several alternative
processing branches. The field whose contents determine how the subsequent
processing is specified after CASE ; the individual processing branches are
introduced by WHEN , followed by the value to be tested. The entire block is
concluded by ENDCASE . The structure of the CASE statement is as
follows:

CASE f.
WHEN f1.

WHEN
f2.


ENDCASE.

On reaching such a CASE statement, the
processor compares f with f1 .
If f = f1 , it executes the processing block
between ” WHEN f1. ” and the next WHEN statement. If there are no further WHEN
statements, it executes the processing block up to the ENDCASE statement and
then continues with any subsequent processing.
If f <> f1 , the
processor compares the field f2 in the next WHEN statement with f and proceeds
as with f1 and so on.

Although f should be a variable, f1 can be a
variable or a literal. For the comparison ” f = f1 “, the rules are the same as
for IF .

There is a second variant of the WHEN statement:

WHEN
OTHERS.
No more than one such WHEN statement is allowed within a CASE block.
The ” WHEN OTHERS ” processing block is always concluded by ENDCASE , i.e. no
further WHEN statements can follow.

The ” WHEN OTHERS ” processing block
is executed only if none of the preceding WHEN blocks have been executed, i.e.
if all previous comparisons (” f = … ) have returned a negative
result.

Example

DATA: ONE TYPE I VALUE 1,
THREE TYPE P VALUE
3.
DO 5 TIMES.
CASE SY-INDEX.
WHEN ONE.
WRITE / ‘That is’.
WHEN
2.
WRITE ‘a’.
WHEN THREE.
WRITE ‘good’.
WRITE ‘example’.
WHEN
OTHERS.
WRITE ‘!’.
ENDCASE.
ENDDO.

Output: ” That is a good
example ! ! “

Notes
You can nest several CASE statements and even
combine them with IF statements.
The statement ” WHEN: f1, f2. ” does not
make sense. The example below shows that the block belonging to ” WHEN f1 ” is
empty:

WHEN f1.
WHEN f2.