P. 1
SAP: Instrucciones de Control y Bucles en ABAP

SAP: Instrucciones de Control y Bucles en ABAP

5.0

|Views: 5.987|Likes:
Publicado porAlejandro Torrijos
Tutorial sobre el uso de instrucciones de control y de bucles en Abap
Tutorial sobre el uso de instrucciones de control y de bucles en Abap

More info:

Published by: Alejandro Torrijos on Jan 16, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/24/2013

pdf

text

original

SENTENCIAS CONDICIONALES EN ABAP

Para ejecutar instrucciones sólo si se cumplen ciertas condiciones ABAP tiene dos bloques de instrucciones. El primero es IF….ENDIF Esta instrucción comprueba si se cumple una condición antes de pasar a la siguiente instrucción. Si no se cumple ejecuta la instrucción que sigue al ENDIF, por ejemplo

IF x > 0. WRITE / ‘x es un número positivo’. ENDIF.

Si queremos añadir una opción por defecto usamos la instrucción ELSE, por ejemplo

IF x > 0. WRITE / ‘x es un número positivo’. ELSE WRITE / ‘x es un número negativo’. ENDIF.

También podría darse el caso de que la variable x fuera cero. Si queremos comprobar si se cumple una segunda condición usamos la instrucción ELSEIF, por ejemplo

Página 1 de 7

IF x GT 0. WRITE / ‘x es un número positivo’. ELSEIF x EQ 0. WRITE / ‘x es igual a cero’. ELSE WRITE / ‘x es un número negativo’. ENDIF.

La segunda opción para comprobar si se cumple una condición es mediante el bloque de instrucciones CASE…ENDCASE. Por ejemplo para el caso anterior

CASE x. WHEN x GT 0. WRITE / ‘x es un número positivo’. WHEN x EQ 0. WRITE / ‘x es cero’. WHEN OTHERS. WRITE / ‘x es un número negativo’. ENDCASE.

Podemos comprobar si se cumplen varias condiciones a la vez mediante la expresión AND.

Página 2 de 7

También podemos comprobar si se cumple alguna de las condiciones mediante la expresión OR.

CASE x. WHEN x GT 0 AND x LE 100. WRITE / ‘x es un número positivo entre uno y cien’. WHEN x EQ 0 OR x LT 0. WRITE / ‘x es cero o un número negativo’. ENDCASE.

INTRUCCIONES DE BUCLE
En Abap existen dos tipos de bucles. Los bucles condicionales y los no condicionales.

Los bucles condicionales se crean con el grupo de instrucciones WHILE…ENDWHILE.

Supongamos que le pedimos por pantalla al usuario que escriba un número que vamos a almacenar en la variable x. Con el siguiente código le seguimos pidiendo al usuario que introduzca otro número mientras que se cumpla la condición inicial del bucle (que NO sea cero).

WHILE x NE 0. WRITE / ‘Por favor escriba otro número’. ENDWHILE. Página 3 de 7

En cada iteración el sistema comprueba que se cumple la condición antes de entrar de nuevo en el bucle. Si no se cumple salta hasta la sentencia ENDWHILE y continúa ejecutando el programa a partir de esa instrucción.

Al igual que en las expresiones condicionales, en los bucles podemos comprobar más de una condición mediante las expresiones AND u OR.

WHILE x <> 0 AND x < 100. WRITE / ‘Por favor escriba otro número’. ENDWHILE.

En este caso le pedimos al usuario que escriba otro número siempre que este no sea cero y que sea menor que cien.

También podemos anidar varios bucles o condiciones, por ejemplo

WHILE x <> 0. PARAMETER x TYPE i. IF x MOD 2 = 0. WRITE / ‘Es un número par’. ELSE WRITE / ‘Es un número impar’. ENDIF ENDWHILE. Página 4 de 7

Los bucles NO condicionales se crean con las instrucciones DO… ENDDO. En este caso debemos indicar el número de veces que queremos que se ejecute un grupo de instrucciones, por ejemplo

DO 10 TIMES WRITE ‘Hola amigos’. ENDDO.

En este caso aparecerá por pantalla 10 veces la frase ‘Hola amigos’.

Podemos terminar una vuelta con la instrucción CONTINUE

DO 10 TIMES PARAMETER x TYPE i. IF x <= 0. CONTINUE. ENDIF. IF x MOD 2 = 0. WRITE / ‘Es un número par’. ELSE. WRITE / ‘Es un número impar’. ENDIF. ENDDO. Página 5 de 7

En este caso si el usuario escribe un número positivo el sistema escribe en la pantalla si es un número par o impar (así hasta un máximo de diez veces). Si el usuario escribe un número negativo el sistema vuelve al principio del bucle (vuelve a ejecutar la primera instrucción).

Otra manera de hacer lo mismo es con la instrucción CHECK

DO 10 TIMES PARAMETER x TYPE i. CHECK x > 0. IF x MOD 2 = 0. WRITE / ‘Es un número par’. ELSE. WRITE / ‘Es un número impar’. ENDIF. ENDDO.

En este caso el programa comprueba que x es un número positivo antes de seguir a la siguiente instrucción.

Página 6 de 7

Por último podemos usar la instrucción EXIT para salir del bucle

DO 10 TIMES PARAMETER x TYPE i. IF x < 0. EXIT. ENDIF. IF x MOD 2 = 0. WRITE / ‘Es un número par’. ELSE. WRITE / ‘Es un número impar’. ENDIF. ENDDO.

En este caso si el usuario introduce un número negativo el programa nos lleva inmediatamente a la instrucción ENDDO y continúa ejecutando la instrucción que viene a continuación (es decir nos saca del bucle).

Página 7 de 7

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->