<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>