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.