Compartir vía


Instrucciones de bucle X++

Nota

Los grupos de interés de la comunidad ahora se han trasladado de Yammer a Microsoft Viva Engage. Para unirse a una comunidad de Viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a la comunidad de Viva Engage de Finance and Operations y elija la comunidad a la que desea unirse.

En este artículo se describen las instrucciones de bucle en X++.

Hay tres declaraciones de bucle: for, while y do... mientras. Un bucle repite su afirmación hasta que la condición que estableces para el bucle es falsa. Dentro de las instrucciones de bucle, puede usar instrucciones break y continue .

bucles for

La sintaxis de un bucle for es:

for (inicialización;prueba;incremento) {declaración}

El bucle for ejecuta repetidamente la instrucción mientras la prueba de expresión condicional sea verdadera. puede ser un bloque de declaraciones. El cuerpo del bucle for (instrucción) puede ejecutarse cero o más veces, dependiendo de los resultados de la prueba.

Un bucle for se diferencia de otros bucles porque puedes asignar un valor inicial a una variable de control, y porque hay una sentencia para incrementar o decrementar la variable. Estas adiciones hacen que un bucle for sea especialmente útil para recorrer listas, contenedores y matrices porque tienen un número fijo de elementos.

También puede aplicar una instrucción a cada elemento e incrementar su camino a través de los elementos, estableciendo la condición para probar el último elemento.

Ejemplo de un bucle for

En el ejemplo de código siguiente, se imprimen los elementos de una matriz de enteros.

int integers[10];
for (int i = 0; i < 10; i++)
{
    info(int2str(integers[i]));
}
// The output is a series of 0's.

bucles while

La sintaxis de un bucle while es:

while (expresión) instrucción

Un bucle while ejecuta repetidamente la instrucción mientras la expresión condicional sea verdadera. Puedes reemplazar la sentencia por un bloque de instrucciones. El bucle ejecuta la sentencia tantas veces como se cumpla la condición (de cero a muchas).

Ejemplo de un bucle while

En el ejemplo de código siguiente se muestra un bucle while que atraviesa un contenedor e imprime el contenido del contenedor.

container cont = ["one", "two", "three"];
int no = 1;
while (no <= conlen(cont))
{
    info(conPeek(cont, no));
    no++;
}
// The output is "one", "two", "three".

hacer... bucles while

La sintaxis del do... while es:

do {declaración} while (expresión) ;

El do... while es similar al bucle while , pero la condición aparece después de la instrucción que debe ejecutarse. puede ser un bloque de declaraciones. La instrucción siempre se ejecuta al menos una vez, porque la condición se prueba después de ejecutar la instrucción . El do... while es adecuado para tareas que siempre deben realizarse al menos una vez, como obtener parámetros para un informe.

Ejemplo de un do... bucle while

En el ejemplo de código siguiente se encuentra la potencia más pequeña de 10 que es mayor que realNumber.

int FindPower(real realNumber)
{
    int exponent = -1;
    real curVal;

    do
    {
        exponent++;
        curVal = power(10, exponent);
    }
    while (realNumber > curVal);

    return exponent;
}

Continuar declaración

La instrucción continue hace que la ejecución se mueva directamente a la siguiente iteración de for,while o do... while loop. Para do o while, la prueba se ejecuta inmediatamente. Para una instrucción for , se ejecuta el paso de incremento.

Ejemplo de una instrucción continue

En el siguiente ejemplo de código, si Iarray[i] <= 0, el bucle no ejecuta las sentencias restantes. El bucle incrementa i antes de intentar de nuevo la instrucción if .

int Iarray[100];
for (int i = 0; i < 100; i++)
{
    if (Iarray[i] <= 0)
    {
        Info("Will continue.");
        continue;
    }

    info("Did not continue.");
}
// The output is "Will continue." for all 100 interations.

instrucción break

Usa la instrucción break dentro de un bucle para terminar ese bucle. A continuación, la ejecución pasa a la primera instrucción después del bucle.

Ejemplo de una instrucción break

En este ejemplo se usa una instrucción break dentro de un bucle while . Cuando se usa dentro de un bucle, la instrucción break termina el bucle y la ejecución continúa desde la sentencia que sigue al bucle. Este comportamiento funciona también para los bucles de do... while y for .

var mainMenu = SysDictMenu::newMainMenu();
var enum = mainMenu.getEnumerator();
var found = false;
while (enum.moveNext())
{
    var menuItem = enum.current();
    if (menuItem.label() == "StringOfInterest")
    {
        found = true;
        break;
    }
}
if (found) 
{
    // do something
}