ABAP if else

Summary: in this tutorial, you will learn how to use the ABAP if else statement to execute a block of code based on the result of one or more logical expressions.

The if statement

To execute a block of code based on a logical expression, you use the if statement as follows:

if logical_expression.
   " code block
endif.

In this syntax, the code block inside the if statement will execute if the logical_expression evaluates to true.

If the logical_expression evaluates to false, the control is passed to the next statement in the program.

For example:

data gv_status type i value 1.

if gv_status = 1.
  write: 'The status is 1'.
endif.

Output:

The status is 1

In this example, the value of the gv_status is 1. The if statement checks if the value of gv_status is one and outputs a message to the screen.

If you change the value of gv_status to 2, the expression gv_status = 1 evaluates to a false, the code does not output anything to the screen.

data gv_status type i value 2.

if gv_status = 1.
  write: 'The status is 1'.
endif.

To execute another block of code in case the condition in the if statement evaluates false, you use the if else statement.

The if else statement

The following shows the syntax of the if else statement:

if logical_expression.
   " if block
else.
   " else block
endif.

In this syntax, if the logical_expression evaluates to true, the code in the if branch will execute.

In case the logical_expression evaluates to false, the code block in the else branch will execute.

For example:

data gv_status type i value 2.

if gv_status = 1.
  write: 'The status is 1'.
else.
  write: 'The status is not equal to 1'.
endif.

Output:

The status is not equal to 1

The if elseif else statement

The if elseif else statement allows you to execute a code block based on the results of multiple boolean expressions:

if logical_expression1.
   " if block 
elseif logical_expression2.
   " elseif block
elseif logical_expression3.
   "...
else.
   " else block 
endif.

In this syntax, ABAP evaluates the logical expressions from top to bottom. If it finds a logical expression that evaluates to true, it will execute the code block in that branch.

If there is no logical expression that evaluates to true, the code block in the else branch will execute.

Consider the following example:

data: gv_quantity type i value 120,
      gv_price    type i.

if gv_quantity > 0 and gv_quantity <= 10.
  gv_price = 20.
elseif gv_quantity > 10 and gv_quantity <= 50.
  gv_price = 18.
elseif gv_quantity > 50 and gv_quantity <= 100.
  gv_price = 16.
else.
  gv_price = 15.
endif.

write gv_price.

Output:

15

How it works.

  • First, declare two variables gv_quantity and gv_price. The default value of the gv_quantity is 120.
  • Second, use the if esleif else statement to determine the value for the gv_price variable based on the value of the gv_quantity. variable. Since gv_price is 120, the code block in the else branch is executed, which assigns gv_price the value 15.
  • Finally, output the value of the gv_price variable to the screen.

Summary

  • Use the if statement when you want to execute a code block based on a logical expression.
  • Use the if else statement in case you want to execute another code block when the logical expression in the if branch is false.
  • Use the if elseif else statement when you want to execute a code block based on the results of multiple logical expressions.