W Pub: ABAP Cursosentenciawhileendwhile

<html>

<head>

<title>WHILE .. ENDWHILE</title>

</head>

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

<p align="left">⚠ &lt;b&gt;Definicin⚠ &lt;/b&gt;</p>

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

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

<p align="left">⚠ &lt;b&gt;Sintaxis:⚠ &lt;/b&gt;</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 ⚠ &lt;a href="exit.htm" tppabs="exit.htm"&gt;EXIT⚠ &lt;/a&gt;,

⚠ &lt;a href="stop.htm" tppabs="stop.htm"&gt;STOP⚠ &lt;/a&gt; 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 ⚠ &lt;a href="do_enddo.htm" tppabs="do_enddo.htm"&gt;DO⚠ &lt;/a&gt;. Al igual en la

sentencia ⚠ &lt;a href="do_enddo.htm" tppabs="do_enddo.htm"&gt;DO⚠ &lt;/a&gt;, se puede utilizar ms de una opcin

VARY en una sentencia WHILE.</p>

<p>⚠ &lt;b&gt;Ejemplo:⚠ &lt;/b&gt;</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>⚠ &lt;b&gt;Vase tambin:⚠ &lt;/b&gt; ⚠ &lt;a href="call_function.htm" tppabs="call_function.htm"&gt;CALL

FUNCTION STARTING NEW TASK⚠ &lt;/a&gt;.</p>

</body>

</html>