Porozumění a používání smyček v programování Delphi

Smyčka je běžným prvkem ve všech programovacích jazycích. Delphi má tři kontrolní struktury které opakovaně spouštějí bloky kódu: pro, opakujte... do té doby... dělat.

Smyčka FOR

Předpokládejme, že potřebujeme opakovat operaci pevně kolikrát.

// zobrazit 1,2,3,4,5 schránky zpráv
var j: celé číslo;
začít
pro j: = 1 na 5 dělat
začít
ShowMessage ('Box:' + IntToStr (j));
konec;
konec;

Hodnota řídící proměnné (j), která je skutečně pouze čítačem, určuje, kolikrát se příkaz for spustí. Klíčové slovo pro nastavení čítače. V předchozím příkladu je počáteční hodnota pro čítač nastavena na 1. Konečná hodnota je nastavena na 5.
Když začíná příkaz for, běží proměnná čítače nastavena na počáteční hodnotu. Delphi než zkontroluje, zda je hodnota čítače menší než konečná hodnota. Pokud je hodnota větší, není nic provedeno (provádění programu přeskočí na řádek kódu bezprostředně následující za blokem kódu smyčky). Pokud je počáteční hodnota menší než konečná hodnota, provede se tělo smyčky (zde: zobrazí se okno se zprávou). Nakonec Delphi přidá čítač 1 a zahájí proces znovu.

instagram viewer

Někdy je nutné počítat zpět. dolů klíčové slovo určuje, že hodnota čítače by měla být snížena o jednu při každém spuštění smyčky (není možné zadat jiný přírůstek / úbytek než jeden). Příklad smyčky for for, která se počítá dozadu.

var j: celé číslo;
začít
pro j: = 5 dolů 1 dělat
začít
ShowMessage ('T minus' + IntToStr (j) + 'sekundy');
konec;
ShowMessage ('Pro sekvence spuštěna!');
konec;

Poznámka: Je důležité, abyste nikdy nezměnili hodnotu řídicí proměnné uprostřed smyčky. Pokud tak učiníte, dojde k chybám.

Vnořené FOR smyčky

Zápis smyčky for v rámci jiné for loop (vnořující smyčky) je velmi užitečný, pokud chcete vyplnit / zobrazit data v tabulce nebo mřížce.

var k, j: celé číslo;
začít
// tato dvojitá smyčka se provede 4x4 = 16krát
pro k: = 1 na 4 dělat
pro j: = 4 dolů 1 dělat
ShowMessage ('Box:' + IntToStr (k) + ',' + IntToStr (j));
konec;

Pravidlo pro vnoření pro další smyčky je jednoduché: vnitřní smyčka (čítač j) musí být dokončena před tím, než se objeví další příkaz pro vnější smyčku (čítač k). Můžeme mít trojité nebo čtyřnásobné vnořené smyčky, nebo dokonce více.

Poznámka: Obecně platí, že klíčová slova pro začátek a konec nejsou striktně vyžadována, jak vidíte. Pokud není použit začátek a konec, považuje se za tělo smyčky příkaz bezprostředně následující za příkazem.

Smyčka FOR-IN

Pokud máte Delphi 2005 nebo jakoukoli novější verzi, můžete použít „novou“ iteraci stylu stylu pro prvky nad kontejnery. Následující příklad ukazuje iterace nad řetězcovými výrazy: u každého znaku v řetězci zkontrolujte, zda je znak buď „a“ nebo „e“ nebo „i“.

konst
s = 'O programování Delphi';
var
c: char;
začít
pro C v s dělat
začít
-li C v ['a', 'e', ​​'i'] pak
začít
// dělej něco
konec;
konec;
konec;

Smyčky WHILE a REPEAT

Někdy nebudeme přesně vědět, kolikrát by měla smyčka cyklu. Co když chceme opakovat operaci, dokud nedosáhneme konkrétního cíle?

Nejdůležitější rozdíl mezi smyčkou while-do a opakováním-till loop je kód opakovat prohlášení se vždy provádí alespoň jednou.

Obecný vzorec, když v Delphi píšeme typ opakování (i když), je následující:

opakovat
začít
prohlášení;
konec;
dokud podmínka = true
zatímco podmínka = true dělat
začít
prohlášení;
konec;

Zde je kód pro zobrazení 5 po sobě jdoucích zpráv pomocí opakování do:

var
j: celé číslo;
začít
j: = 0;
opakovat
začít
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
konec;
dokud j> 5;
konec;

Jak vidíte, příkaz opakování vyhodnocuje podmínku na konci smyčky (opakovací smyčka se tedy provádí alespoň jednou).

Na druhou stranu příkaz while vyhodnocuje stav na začátku smyčky. Protože se test provádí nahoře, obvykle se musíme ujistit, že podmínka má smysl před zpracováním smyčky, pokud to není pravda překladač může rozhodnout o odstranění smyčky z kódu.

var j: celé číslo;
začít
j: = 0;
zatímco j <5 dělat
začít
j: = j + 1;
ShowMessage ('Box:' + IntToStr (j));
konec;
konec;

Rozbít a pokračovat

Postupy Break and Continue lze použít k řízení toku opakovaných příkazů: Break Procedura způsobí, že tok kontroly opustí příkaz pro, while nebo opakujte a pokračuje v dalším tvrzení po smyčce tvrzení. Pokračovat umožňuje toku řízení pokračovat k další iteraci opakující se operace.