Branchement conditionnel : implémentation

La branche conditionnelle est une structure de contrôle qui vous permet de rendre l'exécution du code dépendante de conditions logiques.
La branche conditionnelle la plus courante est constituée d'une paire de mots-clés, IF et ENDIF. Le bloc de code ABAP entre IF et ENDIF est exécuté uniquement si la condition après IF est remplie.
Vous pouvez ajouter d'autres blocs de code étendant l' IF . . ENDIF structure par un en utilisant le mot-clé ELSE et un nombre arbitraire de blocs à l'aide du mot-clé ELSEIF. En ajoutant le mot-clé ELSE, vous vous assurez qu'un seul des blocs de code ABAP est toujours exécuté. Si ELSE est manquant, aucun des blocs de code ABAP ne peut être exécuté.
Chaque SI.. Les mots-clés ENDIF sont obligatoires et chaque IF doit avoir un ENDIF.
Le bloc de code ABAP exécuté est le suivant :
- Tout d'abord, la condition IF est évaluée. Si la condition est remplie, le bloc de code ABAP correspondant est exécuté et le programme continue après l'ENDIF.
La condition après la première évaluation ELSEIF n'est remplie que si la condition IF n'est pas remplie. Si la condition est remplie, le bloc de code correspondant est exécuté et le programme continue après ENDIF.
Cette opération est effectuée consécutivement pour toutes les conditions ELSEIF. Si aucune des conditions n'est remplie et que la structure contient ELSE, le bloc de code ABAP après ELSE est exécuté. Sinon, aucun des blocs de code ABAP n'est exécuté.
Astuce
Conditions logiques

Les conditions logiques sont une combinaison de comparaisons, d'opérations logiques, d'expressions et de fonctions que le système d'exécution évalue pour décider si la condition est vraie ou fausse.
Le cas d'utilisation le plus courant pour les conditions logiques est après les mots-clés IF ou ELSEIF dans IF . . . . ENDIF structure.
Le premier exemple (dans la figure ci-dessus) est une comparaison simple : la condition est vraie si les deux objets de données, x et y, ont la même valeur.
Le deuxième example (sur la figure ci-dessus) est un peu plus sophistiqué: soit la valeur de x est supérieure ou égale à y et inférieure à deux fois la valeur de y, soit elle est inférieure ou égale à y et supérieure à deux fois la valeur de y.
Le troisième exemple (dans la figure ci-dessus) utilise la fonction arithmétique abs( ) et l'expression logique BETWEEN <expression 1> AND <expression 2>. La condition est vraie si la valeur absolue de x est comprise entre la valeur absolue de y et la valeur absolue de deux fois y.
Pour des comparaisons de valeurs simples, vous pouvez utiliser les opérateurs =, <>, >, <, >=, and <=. Vous pouvez comparer les valeurs non seulement des objets de données, mais aussi de nombreuses autres expressions, comme l'expression arithmétique 2 * y dans l'exemple ci-dessus.
Remarque
Opérateurs et significations
| Opérateur | Signification |
|---|---|
| AND | Utilisé pour joindre plusieurs expressions logiques afin de créer une nouvelle expression logique qui est vraie uniquement lorsque toutes les expressions logiques multiples sont vraies. |
| OR | Utilisé pour joindre plusieurs expressions logiques afin de créer une nouvelle expression logique qui est vraie si au moins une des expressions logiques est vraie. |
| NOT | La négation d'une expression logique à l'aide de NOT crée une nouvelle expression logique qui est fausse si l'expression logique est vraie et vice versa. |
Vous pouvez utiliser les opérateurs AND et OR pour combiner des expressions logiques et l'opérateur NOT pour nier une expression. Sans parenthèses, NE LIT PAS plus fort que ET et ET plus fort que OR.
ABAP connaît certaines expressions logiques spéciales :
- <data object> IS INITIAL est vrai si <data object>contient sa valeur spécifique au type
- <data object> IS NOT INITIAL est vrai si <data object> contient une valeur différente de la valeur initiale spécifique au type.
- <data object> ENTRE <expression 1> ET <expression 2>
Certaines fonctions ABAP spéciales sont des fonctions de prédicat. Cela signifie qu'il s'agit de conditions logiques elles-mêmes. Par exemple, Contains( ) est une fonction qui compare des valeurs alphanumériques.
