Recherche…


IF / ELSEIF / ELSE

IF lv_foo = 3.
  WRITE: / 'lv_foo is 3'.
ELSEIF lv_foo = 5.
  WRITE: / 'lv_foo is 5'.
ELSE.
  WRITE: / 'lv_foo is neither 3 nor 5'.
ENDIF.

CAS

CASE lv_foo.
  WHEN 1.
    WRITE: / 'lv_foo is 1'.
  WHEN 2.
    WRITE: / 'lv_foo is 2'.
  WHEN 3.
    WRITE: / 'lv_foo is 3'.
  WHEN OTHERS.
    WRITE: / 'lv_foo is something else'.
ENDCASE

VÉRIFIER

CHECK est une instruction simple qui évalue une expression logique et quitte le bloc de traitement en cours si elle est fausse.

METHOD do_something.
  CHECK iv_input IS NOT INITIAL. "Exits method immediately if iv_input is initial

  "The rest of the method is only executed if iv_input is not initial
ENDMETHOD.  

AFFIRMER

ASSERT est utilisé dans les zones sensibles où vous voulez être absolument sûr qu'une variable a une valeur spécifique. Si la condition logique après ASSERT s'avère fausse, une exception non ASSERTION_FAILED ( ASSERTION_FAILED ) est ASSERTION_FAILED .

ASSERT 1 = 1. "No Problem - Program continues

ASSERT 1 = 2. "ERROR

COND / SWITCH

SWITCH et COND offrent une forme particulière de flux de programme conditionnel. Contrairement à IF et CASE , ils représentent différentes valeurs basées sur une expression plutôt que d'exécuter des instructions. C'est pourquoi ils comptent comme fonctionnels.

COND

Chaque fois que plusieurs conditions doivent être prises en compte, COND peut faire le travail. La syntaxe est assez simple:

COND <type>( 
    WHEN <condition> THEN <value> 
    ... 
    [ ELSE <default> | throw <exception> ]
).

Exemples

" Set screen element active depending on radio button
screen-active = COND i(
    WHEN p_radio = abap_true THEN 1
    ELSE 0 " optional, because type 'i' defaults to zero
).

" Check how two operands are related to each other
" COND determines its type from rw_compare
rw_compare = COND #( 
    WHEN op1 < op2 THEN 'LT'
    WHEN op1 = op2 THEN 'EQ'
    WHEN op1 > op2 THEN 'GT' 
).

COMMUTATEUR

SWITCH est un outil pratique pour le mappage des valeurs, car il vérifie uniquement l'égalité, donc plus court que COND dans certains cas. Si une entrée inattendue a été donnée, il est également possible de lancer une exception. La syntaxe est un peu différente:

SWITCH <type>( 
    <variable>
    WHEN <value> THEN <new_value> 
    ... 
    [ ELSE <default> | throw <exception> ]
).

Exemples

DATA(lw_language) = SWITCH string(
    sy-langu
    WHEN 'E' THEN 'English'
    WHEN 'D' THEN 'German'
    " ...
    ELSE THROW cx_sy_conversion_unknown_langu( )
).


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow