Condiciones.
============
- IF....ENDIF
Ejemplos: IF num > 0.
"DECLARACIONES
WRITE 'El numero es positivo'.
ENDIF.
IF num > 0
WRITE 'El numero es positivo'.
ELSEIF num < 0.
WRITE 'El numero es negativo'.
ELSE
WRITE 'El numero es cero, no queda otra!!'.
ENDIF.
- CASE...ENDCASE
Ejemplo: CASE valor.
WHEN 1.
WRITE 'El numero tiene 1 digito'.
WHEN 2.
WRITE 'El numero tiene 2 digitos'.
WHEN 3.
WRITE 'El numero tiene 3 digitos'.
WHEN OTHERS.
WRITE 'El numero tiene mas de 3 digitos'.
ENDCASE.
Operadores Logicos.
===================
OperadorLogico Significado
AND Y
OR O(incluyente, o una u otra cosa o ambas)
= , EQ Igual
<> , NE Distinto
> , GT Mayor
< , LT Menor
>= , GE Mayor o iguak
<= , LE Menor o igual
Bucle.
=============
- LOOP....ENDLOOP.
Ejemplo: LOOP AT tabla.
"Declaraciones
ENDLOOP.
- DO.....ENDDO.
Ejemplo: DO n TIMES.
WRITE 'HOLA!!'.
ENDDO.
num = 1.
DO num < 10 TIMES.
WRITE num1.
num1 = num1 1.
ENDDO.
Sentencias de Control.
======================
Se utilizan para terminar el procesamiento de un bucle, de un proceso o un programa.
- CHECK: Verifica si la condicion es verdadera. Si la condicion es falsa, y la sentencia esta dentro de un bucle, se saltearan todas las sentencias siguientes que esten dentro del bucle. Fuera del bucle, se saltearan todas las sentencias hasta el final del evento o del programa en proceso.
Ejemplo: CHECK sy-subrc EQ 0.
- EXIT : Saldra del bucle si esta en un bucle, de una rutina si esta en una rutina y si no esta en ninguna de las anteriores saldra del programa.
Ejemplo: IF v_clase EQ 'CA'.
EXIT.
ENDIF.
- CONTINUE : Se utiliza solo dentro del bucle, luego de la ejecucino de la sentencia el sistema continua la siguiente iteracion.
Ejepmlo : DO 4 TIMES.
IF sy-subrc EQ 4.
CONTINUE.
ENDIF.
ENDDO.
- STOP : SE finaliza el programa en ejecucion pero antes se ejecuta el evento END-OF-SELECTION.
Ejemplo:
IF sy-subrc EQ 0.
STOP.
ENDIF.
- LEAVE : Se finaliza el programa en ejecucion pero no se ejecuta el evento END-OF-SELECTION.
Ejemplo: IF v_clase EQ 'DT'.
LEAVE.
ENDIF.
Ejercicios.
===========
- ZABAP_PRUEBA_BUCLES_ESTMO99K
*&---------------------------------------------------------------------*
*& Report ZABAP_PRUEBA_BUCLES_ESTMO99K
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZABAP_PRUEBA_BUCLES_ESTMO99K.
DATA: num1 TYPE i.
INITIALIZATION.
num1 = 1.
START-OF-SELECTION.
WHILE num1 < 10.
WRITE num1.
"num1 = num1 1.
ADD 1 TO num1.
ENDWHILE.
END-OF-SELECTION.
- ZABAP_BUCLES_ESTMO99K
*&---------------------------------------------------------------------*
*& Report ZABAP_BUCLES_ESTMO99K
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZABAP_BUCLES_ESTMO99K.
DATA: num1 TYPE i.
INITIALIZATION.
START-OF-SELECTION.
DO 10 TIMES.
IF sy-index EQ 6.
num1 = sy-index.
STOP.
ENDIF.
ENDDO.
END-OF-SELECTION.
WRITE: num1.
DOCUMENTACION
=============
do
sintaxis
DO [n TIMES ] [ VARYING ] .
[ bloque_de_sentencias ]
ENDDO .
efecto
Las declaraciones DO y ENDDO definen una estructura de control, que puede contener un bloque de instrucciones bloque_de_sentencias cerrado.
Sin la adición de N veces , el bloque de instrucciones se repetirá hasta que uno de los estados de terminación de bucles termina el bucle . Especialmente la sentencia EXIT está destinada a terminar completamente los lazos. Dentro del bloque de instrucciones, el campo del sistema sy-index contiene el número de pasadas de bucle consumados ( bucle comun inclusive). En bucles anidados , sy-index siempre se refiere al bucle comun.
Con la adición de N veces usted puede limitar la cantidad de pases de bucle. n espera un objeto de datos del tipo de datos i . El valor numérico de n en la entrada en el bucle determina la cantidad máxima de pases del bloque de instrucciones . La estructura de control no acepta un cambio del valor de n en el bucle . Si n contiene un valor menor que o igual a 0 , no se ejecutará el bloque de instrucciones .
Uso de la adición Variar obsoleta , una secuencia de objetos de datos puede ser procesada en la memoria .
nota
Si no se especifica la adición N veces , el bucle tiene que ser terminada por una declaración , de lo contrario el bucle será procesada sin fin. El parámetro de perfil rdisp / max_wprun_time limita el tiempo máximo de ejecución de un programa ABAP .