X++ lusstatements

Notitie

Belangengroepen uit de gemeenschap zijn nu overgestapt van Yammer naar Microsoft Viva Engage. Om lid te worden van een Viva Engage community en deel te nemen aan de laatste discussies, vul je het formulier Request access to Finance and Operations Viva Engage Community in en kies de community waar je lid van wilt worden.

In dit artikel worden loop-statements in X++ beschreven.

Er zijn drie loop-statements: voor, terwijl, en doen... terwijl. Een lus herhaalt zijn uitspraak totdat de voorwaarde die je voor de lus stelt onwaar is. Binnen de lus-instructies kunt u break - en continue-statements gebruiken.

voor loopings

De syntaxis van een for-lus is:

voor (initialisatie;test;toename) {verklaring}

De for-lus voert herhaaldelijk een instructie uit zolang de voorwaardelijke expressietestwaar is. Verklaring kan een blok van uitspraken zijn. De body van de for-lus (statement) kan nul of meer keren worden uitgevoerd, afhankelijk van de testresultaten.

Een for-lus verschilt van andere lussen omdat je een beginwaarde aan een controlevariabele kunt toewijzen, en omdat er een statement is om de variabele te verhogen of te decrementeren. Deze toevoegingen maken een for-lus vooral handig voor het doorkruisen van lijsten, containers en matrices, omdat ze een vast aantal elementen hebben.

U kunt ook een instructie toepassen op elk element en u een weg banen door de elementen, waarbij u de voorwaarde instelt om voor het laatste element te testen.

Voorbeeld van een for-lus

In het volgende codevoorbeeld worden de items in een matrix met gehele getallen afgedrukt.

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

terwijl lussen

De syntaxis van een while-lus is:

terwijl (expressie)statement

Een while-lus voert herhaaldelijk een instructie uit zolang de voorwaardelijke expressiewaar is. Je kunt een statement vervangen door een blok van statements. De lus voert de instructie uit zo vaak als aan de voorwaarde is voldaan (van nul tot veel).

Voorbeeld van een while-lus

In het volgende codevoorbeeld wordt een while-lus gedemonstreerd die een container doorkruist en de inhoud van de container afdrukt.

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

doen... terwijl lussen

De syntaxis van de do... terwijl lus is:

do {statement} while (expressie) ;

De do... While lus is vergelijkbaar met de while-lus , maar de voorwaarde verschijnt na de instructie die moet worden uitgevoerd. Verklaring kan een blok van uitspraken zijn. De instructie wordt altijd ten minste één keer uitgevoerd, omdat de voorwaarde wordt getest nadat de instructie is uitgevoerd. De do... Terwijl Loop zeer geschikt is voor taken die altijd minstens één keer moeten worden gedaan, zoals het ophalen van parameters voor een rapport.

Voorbeeld van een do... terwijl lus

In het volgende codevoorbeeld wordt de kleinste macht van 10 gevonden die groter is dan realNumber.

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

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

    return exponent;
}

Doorgaan met verklaring

De continue-instructie zorgt ervoor dat de uitvoering direct naar de volgende iteratie van a for, while, or do gaat... terwijl lus. Voor do of while wordt de test direct uitgevoerd. Voor een for-instructie wordt de stapstap increment uitgevoerd.

Voorbeeld van een continue-verklaring

In het volgende codevoorbeeld, als Iarray[i] <= 0, voert de lus de resterende statements niet uit. De lus wordt gesteigerd i voordat hij de if-stelling opnieuw probeert.

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.

Breuk verklaring

Gebruik de break-instructie binnen een lus om die lus te beëindigen. De uitvoering gaat dan naar de eerste instructie na de lus.

Voorbeeld van een break-statement

In dit voorbeeld wordt een break-instructie gebruikt binnen een while-lus . Wanneer deze binnen een lus wordt gebruikt, beëindigt de break-instructie de lus en gaat de uitvoering verder vanaf de instructie die de lus volgt. Dit gedrag werkt ook voor do... while en voor loops.

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
}