Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
Piezīmes
Kopienas interešu grupas tagad ir pārvietotas no Yammer uz Microsoft Viva Engage. Lai pievienotos Viva Engage kopienai un piedalītos jaunākajās diskusijās, aizpildiet veidlapu Pieprasīt piekļuvi Finance and Operations Viva Engage Community un izvēlieties kopienu, kurai vēlaties pievienoties.
Šajā rakstā ir aprakstīti cilpas priekšraksti programmā X++.
Ir trīs cilpas apgalvojumi: par, kamēr un darīt ... gan. Cilpa atkārto savu apgalvojumu, līdz cilpai iestatītais nosacījums ir nepatiess. Cilpas priekšrakstos var izmantot pārtraukuma un turpināšanas priekšrakstus.
cilpām
Cilpas for sintakse ir šāda:
for (inicializācija;pārbaude;pieaugums) {paziņojums}
Cilpa for atkārtoti izpilda priekšrakstu tik ilgi, kamēr nosacītās izteiksmes tests ir patiess. Paziņojums var būt paziņojumu bloks. For cilpas (priekšraksta) pamatteksts var tikt izpildīts nulli vai vairāk reižu atkarībā no testa rezultātiem.
A for cilpa atšķiras no citām cilpām, jo vadības mainīgajam var piešķirt sākotnējo vērtību un ir priekšraksts mainīgā palielināšanai vai samazināšanai. Šie papildinājumi padara for cilpu īpaši noderīgu sarakstu, konteineru un masīvu šķērsošanai, jo tiem ir fiksēts elementu skaits.
Varat arī lietot priekšrakstu katram elementam un palielināt ceļu cauri elementiem, iestatot nosacījumu, lai pārbaudītu pēdējo elementu.
For cilpas piemērs
Šajā koda piemērā tiek drukāti veselu skaitļu masīva vienumi.
int integers[10];
for (int i = 0; i < 10; i++)
{
info(int2str(integers[i]));
}
// The output is a series of 0's.
kamēr cilpas
Cilpas while sintakse ir:
kamēr (izteiksmes)paziņojums
A while cilpa atkārtoti izpilda paziņojumu tik ilgi, kamēr nosacītā izteiksme ir patiesa. Priekšrakstu var aizstāt ar priekšrakstu bloku. Cilpa izpilda priekšrakstu tik reižu, cik nosacījums ir izpildīts (no nulles līdz daudziem).
Laika cilpas piemērs
Tālāk sniegtajā koda piemērā parādīta while cilpa, kas šķērso konteineru un izdrukā konteinera saturu.
container cont = ["one", "two", "three"];
int no = 1;
while (no <= conlen(cont))
{
info(conPeek(cont, no));
no++;
}
// The output is "one", "two", "three".
darīt... kamēr cilpas
Do... kamēr cilpa ir:
darīt {paziņojums}, kamēr (izteiksme) ;
Darīt ... kamēr cilpa ir līdzīga cilpai while, bet nosacījums parādās pēc priekšraksta, kas jāizpilda. Paziņojums var būt paziņojumu bloks. Priekšraksts vienmēr tiek izpildīts vismaz vienu reizi, jo nosacījums tiek pārbaudīts pēc priekšraksta izpildes. Darīt ... savukārt Loop ir labi piemērots uzdevumiem, kas vienmēr jāveic vismaz vienu reizi, piemēram, atskaites parametru iegūšanai.
Piemērs darīt ... kamēr cilpa
Šajā koda piemērā tiek atrasta mazākā jauda 10, kas ir lielāka par realNumber.
int FindPower(real realNumber)
{
int exponent = -1;
real curVal;
do
{
exponent++;
curVal = power(10, exponent);
}
while (realNumber > curVal);
return exponent;
}
Turpināt paziņojumu
Turpinājuma priekšraksts liek izpildei pārvietoties tieši uz nākamo for,while or do... kamēr cilpa. Par to vaikamēr tests tiek izpildīts nekavējoties. Priekšrakstam for tiek izpildīts palielinājuma solis.
Turpinājuma pārskata piemērs
Nākamajā koda piemērā, ja Iarray[i] <= 0, cilpa neizpilda atlikušos priekšrakstus. Cilpa palielinās i , pirms tā vēlreiz mēģina if priekšrakstu.
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.
pārtraukuma paziņojums
Izmantojiet pārtraukuma priekšrakstu cilpā, lai izbeigtu šo cilpu. Pēc tam izpilde pāriet uz pirmo paziņojumu pēc cilpas.
Pārtraukuma paziņojuma piemērs
Šajā piemērā tiek izmantots pārtraukuma priekšraksts while cilpā. Lietojot cilpā, pārtraukuma priekšraksts pārtrauc cilpu un izpilde turpinās no priekšraksta, kas seko cilpai. Šī darbība darbojas arī do... whileun cilpām.
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
}