SAP ABAP - If ... Else Statement
In caso di istruzioni IF… .ELSE, se l'espressione restituisce true, verrà eseguito il blocco di codice IF. In caso contrario, verrà eseguito il blocco di codice ELSE.
La sintassi seguente viene utilizzata per l'istruzione IF… .ELSE.
IF<condition_1>.
<statement block 1>.
ELSE.
<statement block 2>.
ENDIF.
Diagramma di flusso
Esempio
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.
Il codice precedente produce il seguente output:
This is ELSE Statement.
IF… .ELSEIF… .ELSE Statement
A volte la nidificazione delle istruzioni IF può rendere difficile la comprensione del codice. In questi casi, l'istruzione ELSEIF viene utilizzata per evitare l'annidamento dell'istruzione IF.
Quando si utilizzano le istruzioni IF, ELSEIF ed ELSE ci sono alcuni punti da considerare:
Un'istruzione IF può avere zero o un'istruzione ELSE e deve venire dopo qualsiasi istruzione ELSEIF.
Un'istruzione IF può avere da zero a molte istruzioni ELSEIF e devono precedere l'istruzione ELSE.
Se un'istruzione ELSEIF ha esito positivo, nessuna delle restanti istruzioni ELSEIF o istruzione ELSE verrà verificata.
La seguente sintassi viene utilizzata per l'istruzione 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.
Nella sintassi precedente, l'esecuzione del blocco di elaborazione si basa sul risultato di una o più condizioni logiche associate al blocco di elaborazione. Qui -
condition_1 dell'istruzione IF rappresenta una condizione logica che valuta una condizione vera o falsa.
condition_2 mostra la seconda condizione specificata nell'istruzione ELSEIF, che viene eseguita quando la condizione dell'istruzione IF risulta essere falsa.
ENDIF indica la fine del blocco di istruzioni IF.
Esempio
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.
Il codice precedente produce il seguente output:
Result is less than seventy.