Kilpa yra bendras elementas visose programavimo kalbose. Delfis turi tris valdymo struktūros kurie pakartotinai vykdo kodo blokus: už, pakartokite... kol ir kol... daryti.
FOR kilpa
Tarkime, kad operaciją turime pakartoti nustatytą skaičių kartų.
// rodyti 1,2,3,4,5 pranešimų dėžutes
var j: sveikasis skaičius;
prasideda
dėl j: = 1 į 5 daryti
prasideda
„ShowMessage“ (‘Box:’ + IntToStr (j));
galas;
galas;
Kontrolinio kintamojo (j), kuris iš tikrųjų yra tik skaitiklis, reikšmė lemia, kiek kartų veikia teiginys. Raktinis žodis, skirtas nustatyti skaitiklį. Ankstesniame pavyzdyje skaitiklio pradinė vertė yra nustatyta 1. Pabaigos reikšmė yra 5.
Pradėjus skaičiuoti kintamąjį, nustatoma pradinė vertė. Delfi nei patikrina, ar skaitiklio vertė yra mažesnė už galutinę vertę. Jei reikšmė didesnė, nieko nedaroma (programos vykdymas pereina prie kodo eilutės iškart po ciklo kodo bloko). Jei pradinė vertė yra mažesnė už pabaigos vertę, vykdomas kilpos tekstas (čia: rodomas pranešimo laukas). Galiausiai Delphi prideda 1 prie prekystalio ir vėl pradeda procesą.
Kartais reikia skaičiuoti atgal. žemyn raktinis žodis nurodo, kad skaitiklio reikšmė turėtų būti sumažinta po vieną kiekvieną kartą, kai vykdoma kilpa (negalima nurodyti kitokio didinimo / mažinimo nei vienas). „For for loop“, kuris skaičiuojamas atgal, pavyzdys.
var j: sveikasis skaičius;
prasideda
dėl j: = 5 žemyn 1 daryti
prasideda
„ShowMessage“ ('T minus' + IntToStr (j) + 'sekundės');
galas;
ShowMessage ('Už atliktą seką!');
galas;
Pastaba: svarbu niekada nekeisti valdymo kintamojo vertės kilpos viduryje. Tai padarius atsiras klaidų.
Įdėtos FOR kilpos
Įrašyti kilpą kitoje kilpoje (įklijuoti kilpas) yra labai naudinga, kai norite užpildyti / atvaizduoti duomenis lentelėje ar tinklelyje.
var k, j: sveikasis skaičius;
prasideda
// ši dviguba kilpa vykdoma 4x4 = 16 kartų
dėl k: = 1 į 4 daryti
dėl j: = 4 žemyn 1 daryti
„ShowMessage“ ('Dėžutė:' + IntToStr (k) + ',' + IntToStr (j));
galas;
Kitų kilpų įterpimo taisyklė yra paprasta: vidinė kilpa (j skaitiklis) turi būti užpildyta prieš įvykstant kitam išorinės kilpos sakiniui (k skaitiklis). Mes galime turėti trigubai ar keturis kartus įdėtas kilpas ar net daugiau.
Pastaba: Paprastai pradžios ir pabaigos raktiniai žodžiai nėra griežtai reikalingi, kaip matote. Jei pradžia ir pabaiga nenaudojamos, teiginys, esantis iškart po teiginio, laikomas kilpos kūnu.
FOR-IN kilpa
Jei turite „Delphi 2005“ ar naujesnę versiją, galite naudoti „naują“ elementų kolekcijoje stiliaus iteraciją per konteinerius. Šis pavyzdys parodo iteracija per styginių išraiškas: patikrinkite, ar simbolis yra „a“, „e“ ar „i“.
const
s = 'Apie Delphi programavimą';
var
c: char;
prasideda
dėl c į s daryti
prasideda
jei c į ['a', 'e', 'i'] tada
prasideda
// daryk ką nors
galas;
galas;
galas;
WHILE ir REPEAT kilpos
Kartais tiksliai nežinome, kiek kartų ciklas turėtų judėti. O kas, jei norime pakartoti operaciją, kol pasieksime konkretų tikslą?
Svarbiausias skirtumas tarp kartojimo ir kartojimo ciklo yra tas, kad kodas yra pakartoti teiginį visada įvykdomas bent kartą.
Bendras modelis, kai Delphi'e rašome pakartotinio (o kartu) tipo kilpą, yra šie:
pakartoti
prasideda
teiginiai;
galas;
iki sąlyga = tiesa
kol sąlyga = tiesa daryti
prasideda
teiginiai;
galas;
Štai kodas, kurį naudojant 5 pakartotiniai pranešimų laukai bus rodomi naudojant pakartojimą iki:
var
j: sveikasis skaičius;
prasideda
j: = 0;
pakartoti
prasideda
j: = j + 1;
„ShowMessage“ ('Dėžutė:' + IntToStr (j));
galas;
iki j> 5;
galas;
Kaip matote, pakartojimo teiginyje įvertinama būklė kilpos gale (todėl kartojimo kilpa bent kartą vykdoma tikrai).
Kita vertus, tuo tarpu teiginys įvertina sąlygą kilpos pradžioje. Kadangi bandymas atliekamas viršuje, prieš apdorodami kilpą paprastai turėsime įsitikinti, kad sąlyga yra prasminga, jei tai netiesa, sudarytojas gali nuspręsti pašalinti kodą iš kodo.
var j: sveikasis skaičius;
prasideda
j: = 0;
kol j <5 daryti
prasideda
j: = j + 1;
„ShowMessage“ ('Dėžutė:' + IntToStr (j));
galas;
galas;
Pertraukite ir tęskite
Procedūros „Break“ ir „Continue“ gali būti naudojamos norint kontroliuoti pasikartojančių teiginių srautą: „The Break“ procedūra lemia, kad kontrolės srautas išeina iš for, o, arba pakartokite teiginį ir tęskite kitą pareiškimas sekdamas kilpa pareiškimas. Tęsti leidžia valdymo srautui pereiti prie kito pasikartojančio veiksmo kartojimo.