SAP ABAP - Declaração If ... Else
No caso de instruções IF… .ELSE, se a expressão for avaliada como verdadeira, o bloco de código IF será executado. Caso contrário, o bloco de código ELSE será executado.
A seguinte sintaxe é usada para a instrução IF… .ELSE.
IF<condition_1>.
<statement block 1>.
ELSE.
<statement block 2>.
ENDIF.
Diagrama de fluxo
Exemplo
Report YH_SEP_15.
Data Title_1(20) TYPE C.
Title_1 = 'Tutorials'.
IF Title_1 = 'Tutorial'.
write 'This is IF Statement'.
ELSE.
write 'This is ELSE Statement'.
ENDIF.
O código acima produz a seguinte saída -
This is ELSE Statement.
IF ... ELSEIF ... Instrução ELSE
Às vezes, o aninhamento das instruções IF pode tornar o código difícil de entender. Nesses casos, a instrução ELSEIF é usada para evitar o aninhamento da instrução IF.
Ao usar instruções IF, ELSEIF e ELSE, há alguns pontos a serem considerados -
Uma instrução IF pode ter zero ou uma instrução ELSE e deve vir após qualquer instrução ELSEIF.
Uma instrução IF pode ter de zero a muitas instruções ELSEIF e elas devem vir antes da instrução ELSE.
Se uma instrução ELSEIF for bem-sucedida, nenhuma das instruções ELSEIF ou instrução ELSE restantes serão testadas.
A seguinte sintaxe é usada para a instrução IF .... ELSEIF… .ELSE.
IF<condition_1>.
<statement block 1>.
ELSEIF<condition_2>.
<statement block 2>.
ELSEIF<condition_3>.
<statement block 3>.
......
......
......
......
ELSE.
<statement block>.
ENDIF.
Na sintaxe acima, a execução do bloco de processamento é baseada no resultado de uma ou mais condições lógicas associadas ao bloco de processamento. Aqui -
condição_1 da instrução IF representa uma condição lógica que avalia uma condição verdadeira ou falsa.
condição_2 mostra a segunda condição especificada na instrução ELSEIF, que é executada quando a condição da instrução IF acaba sendo falsa.
ENDIF denota o fim do bloco de instrução IF.
Exemplo
Report YH_SEP_15.
Data Result TYPE I VALUE 65.
IF Result < 0.
Write / 'Result is less than zero'.
ELSEIF Result < 70.
Write / 'Result is less than seventy'.
ELSE.
Write / 'Result is greater than seventy'.
ENDIF.
O código acima produz a seguinte saída -
Result is less than seventy.