ABAP Cursosentenciawhileendwhile

<html>

<head>

<title>WHILE .. ENDWHILE</title>

</head>

<BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#0099FF" VLINK="#AA0000"><p align="left">⚠ <b class="titulo">WHILE .. ENDWHILE⚠ </b></p>

<p align="left">⚠ <b>Definicin⚠ </b></p>

<p align="left">Ejecuta un bloque de

sentencias ms de una vez, hasta que una condicin se cumpla. </p>

<p align="left">⚠ <b>Sintaxis:⚠ </b></p>

<pre>WHILE <condicin> [ VARY <f> FROM <f1> NEXT <f2> ].

	<bloque_de_sentencias>.

ENDWHILE.</pre>

<p>El sistema procesa el bloque de sentencias hasta que se cumpla

la condicin o hasta que el sistema procesa una sentencia ⚠ <a href="exit.htm" tppabs="exit.htm">EXIT⚠ </a>,

⚠ <a href="stop.htm" tppabs="stop.htm">STOP⚠ </a> o REJECT. Para condicin se puede utilizar

cualquier expresin lgica. El campo del sistema SY-INDEX contiene el nmero

de veces que el bucle ha sido ejecutado. El sistema permite anidar sentencias

WHILE, as como combinarlas con otras sentencias de bucle.</p>

<p>La opcin VARY acta de la misma forma en que acta la

opcin VARYING en la sentencia ⚠ <a href="do_enddo.htm" tppabs="do_enddo.htm">DO⚠ </a>. Al igual en la

sentencia ⚠ <a href="do_enddo.htm" tppabs="do_enddo.htm">DO⚠ </a>, se puede utilizar ms de una opcin

VARY en una sentencia WHILE.</p>

<p>⚠ <b>Ejemplo:⚠ </b></p>

<pre>DATA: SEARCH_ME TYPE I,

      MIN       TYPE I VALUE 0,
      MAX       TYPE I VALUE 1000,
      TRIES     TYPE I,
      NUMBER    TYPE I.

SEARCH_ME = 23.

WHILE NUMBER <> SEARCH_ME.

  ADD 1 TO TRIES.
  NUMBER = ( MIN + MAX ) / 2.
  IF NUMBER > SEARCH_ME.
    MAX = NUMBER - 1.
  ELSE.
    MIN = NUMBER + 1.
  ENDIF.

ENDWHILE.</pre>

<p>⚠ <b>Vase tambin:⚠ </b> ⚠ <a href="call_function.htm" tppabs="call_function.htm">CALL

FUNCTION STARTING NEW TASK⚠ </a>.</p>

</body>

</html>