ABAP Programs: Internal flow of control (if, case, do, while)
REPORT ZSOURCE0902.
* Declarations for later use
TABLES CUSTOMERS.
DATA: COLOR(10) VALUE ‘yellow’,
N(4) TYPE N VALUE ‘123′,
P TYPE P,
C4(4) VALUE ‘124′,
C5(5) VALUE ‘00124′,
SQUARE_NUMBER TYPE I,
X TYPE I,
Y TYPE I.
* Using a condition (e.g., business class or not)
IF CUSTOMERS-CUSTTYPE = ‘B’.
* book business class
WRITE ‘B’.
ELSE.
* book economy class
WRITE ‘Something else’.
ENDIF.
* Nested if clauses
IF N > 0.
N = N + 1.
ELSE.
IF N = 0.
WRITE / ‘zero’.
ELSE.
N = N - 1.
ENDIF.
ENDIF.
* Using elseif instead of a nested if clauses
IF N > 0.
N = N + 1.
ELSEIF N = 0.
WRITE / ‘zero’.
ELSE.
N = N - 1.
ENDIF.
* Using a case clause
CASE COLOR.
WHEN ‘red’. WRITE ‘color is red’.
WHEN ‘green’. WRITE ‘color is green’.
WHEN ‘yellow’. WRITE ‘color is yellow’.
WHEN OTHERS. WRITE ‘non-standard color’.
ENDCASE.
* Some logical expressions in if clauses
IF N IS INITIAL.
WRITE ‘initial’.
ELSEIF N LT 0
OR N GT 5.
WRITE / ‘less than zero or greater than 5′.
ELSE.
WRITE / ’something else’.
ENDIF.
IF N > P.
WRITE / ‘n is greater than p’.
ENDIF.
* Conversion in an expression
IF C4 = C5.
WRITE / ‘c4 and c5 are equal’.
ENDIF.
* Comparing character strings
DATA: A(6) VALUE ‘ABAP/4′,
RESULT(6).
IF A CA ‘XP’.
RESULT = A+SY-FDPOS(2).
WRITE / RESULT.
ENDIF.
IF A CO ‘ABP’.
WRITE / ‘a only contains A,B, and P’.
ENDIF.
IF A CS ‘BAP’.
WRITE / ‘a contains the string BAP’.
ENDIF.
IF A CP ‘*AP++’.
WRITE / ‘a contains AP followed by two more characters’.
ENDIF.
* Unconditional loop
DO 100 TIMES.
SQUARE_NUMBER = SY-INDEX ** 2.
WRITE / SQUARE_NUMBER.
ENDDO.
* Terminating a loop
DO.
* terminate loop after 5 steps or when the color is red
IF SY-INDEX > 5 OR COLOR = ‘red’. EXIT. ENDIF.
* main loop step
WRITE / SY-INDEX.
ENDDO.
* Using a conditional loop.
X = Y - 2.
WHILE X <> Y.
X = Y + 1.
WRITE / X.
IF X > Y. EXIT. ENDIF.
ENDWHILE.
———————
ABAPer, mail: abap.community@gmail.com http://abaplearner.blogspot.com



Leave a Reply