Cilpu izpratne un izmantošana Delphi programmēšanā

click fraud protection

Cilpa ir kopīgs elements visās programmēšanas valodās. Delfiem ir trīs vadības struktūras kas atkārtoti izpilda koda blokus: par, atkārtojiet... līdz un kamēr... darīt.

FOR cilpa

Pieņemsim, ka mums ir jāatkārto operācija noteiktu reižu.

// rādīt 1,2,3,4,5 ziņojumu lodziņus
var j: vesels skaitlis;
sākt
priekš j: = 1 uz 5 darīt
sākt
ShowMessage ('Box:' + IntToStr (j));
beigas;
beigas;

Kontroles mainīgā lieluma (j) vērtība, kas patiesībā ir tikai skaitītājs, nosaka, cik reizes tiek veikts paziņojums. Atslēgvārds skaitītāja iestatīšanai. Iepriekšējā piemērā skaitītāja sākuma vērtība ir iestatīta uz 1. Beigu vērtība ir iestatīta uz 5.
Kad sāk darboties paziņojums par sākumu, skaitītāja mainīgais tiek iestatīts uz sākuma vērtību. Delfi nekā pārbauda, ​​vai skaitītāja vērtība ir mazāka par beigu vērtību. Ja vērtība ir lielāka, nekas netiek darīts (programmas izpilde lec uz koda rindu tūlīt pēc cilpas koda bloka). Ja sākuma vērtība ir mazāka par beigu vērtību, tiek izpildīts cilpas korpuss (šeit: tiek parādīts ziņojuma lodziņš). Visbeidzot, Delfi pievieno skaitītājam 1 un sāk procesu no jauna.

instagram viewer

Dažreiz ir nepieciešams rēķināties ar atpakaļejošu datumu. līdz atslēgvārds norāda, ka skaitītāja vērtība ir jāsamazina par vienu reizi, kad cilpa tiek izpildīta (nav iespējams norādīt pieaugumu / samazinājumu, izņemot vienu). Aizmugures cilpas piemērs.

var j: vesels skaitlis;
sākt
priekš j: = 5 līdz 1 darīt
sākt
ShowMessage ('T mīnus' + IntToStr (j) + 'sekundes');
beigas;
ShowMessage ('Par izpildīto secību!');
beigas;

Piezīme: ir svarīgi, lai cilpas vidū nekad netiktu mainīta vadības mainīgā vērtība. To darot, rodas kļūdas.

Ligzdoti FOR cilpas

Cilpas rakstīšana citā cilpā (ligzdošanas cilpas) ir ļoti noderīga, ja vēlaties datus aizpildīt / parādīt tabulā vai režģī.

var k, j: vesels skaitlis;
sākt
// šī dubultā cilpa tiek izpildīta 4x4 = 16 reizes
priekš k: = 1 uz 4 darīt
priekš j: = 4 līdz 1 darīt
ShowMessage ('Box:' + IntToStr (k) + ',' + IntToStr (j));
beigas;

Noteikums par nākamo cilpu ligzdošanu ir vienkāršs: iekšējā cilpa (j skaitītājs) jāpabeidz, pirms tiek parādīts nākamais ārējās cilpas paziņojums (k skaitītājs). Mums var būt trīs vai četras ligzdas cilpas vai pat vairāk.

Piezīme. Parasti sākuma un beigu atslēgvārdi nav stingri nepieciešami, kā redzat. Ja sākums un beigas netiek izmantoti, apgalvojums, kas seko aiz paziņojuma, tiek uzskatīts par cilpas pamattekstu.

FOR-IN cilpa

Ja jums ir Delphi 2005 vai kāda jaunāka versija, konteineros varat izmantot "jauno" kolekcijas stila iterāciju. Šis piemērs parāda iterācija pa virknes izteiksmēm: katram burtam virknē pārbaudiet, vai rakstzīme ir vai nu “a”, “e” vai “i”.

const
s = 'Par Delphi programmēšanu';
var
c: char;
sākt
priekš c iekšā s darīt
sākt
ja c iekšā ['a', 'e', ​​'i'] tad
sākt
// dari kaut ko
beigas;
beigas;
beigas;

Cilpas WHILE un REPEAT

Dažreiz mēs precīzi nezinām, cik reizes cilpai vajadzētu riņķot. Ko darīt, ja mēs vēlamies atkārtot operāciju, līdz mēs sasniedzam noteiktu mērķi?

Vissvarīgākā atšķirība starp vienlaikus darāmās cilpas un atkārtojuma cilpu ir tā, ka kods atkārtojiet paziņojumu vienmēr tiek izpildīts vismaz vienu reizi.

Rakstot atkārtotu (un vienlaikus) cilpas tipu Delphi, vispārīgais modelis ir šāds:

atkārtot
sākt
paziņojumi;
beigas;
līdz nosacījums = patiess
kamēr nosacījums = patiess darīt
sākt
paziņojumi;
beigas;

Šis ir kods, lai parādītu 5 secīgus ziņojumu lodziņus, izmantojot atkārtošanu līdz:

var
j: vesels skaitlis;
sākt
j: = 0;
atkārtot
sākt
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
beigas;
līdz j> 5;
beigas;

Kā redzat, atkārtotajā paziņojumā tiek novērtēts stāvoklis cilpas galā (tāpēc vismaz vienreiz atkārtojuma cilpa tiek izpildīta droši).

No otras puses, savukārt paziņojums novērtē stāvokli cilpas sākumā. Tā kā pārbaude tiek veikta augšpusē, mums parasti jāpārliecinās, ka nosacījumam ir jēga pirms cilpas apstrādes, ja tā nav taisnība, sastādītājs var nolemt noņemt cilpu no koda.

var j: vesels skaitlis;
sākt
j: = 0;
kamēr j <5 darīt
sākt
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
beigas;
beigas;

Pārtraukums un turpinājums

Procedūras Break un Continue var izmantot, lai kontrolētu atkārtotu paziņojumu plūsmu: The Break procedūra izraisa kontroles plūsmu, lai izietu no for, kamēr, vai atkārtotu paziņojumu un turpinātu nākamajā paziņojums, apgalvojums sekojot cilpai paziņojums, apgalvojums. Turpināt ļauj vadības plūsmai pāriet uz nākamo atkārtojošās darbības atkārtojumu.

instagram story viewer