|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Perl (9) - CyklyDnešní díl odhalí další příkazy pro řízení provádění skriptů - cykly.
Cykly slouží v případě, že potřebujete nějaký blok opakovat do doby, než bude splněna určitá podmínka nebo proběhne vámi daný počet iterací.
První formou cyklu je příkaz
while (pravdivostni_vyraz) Nejprve se tedy vyhodnotí pravdivostní výraz a pokud je vyhodnocen jako pravda (true), tak se provedou příkazy v bloku, který patří danému cyklu. Po projití celého bloku se vyhodnotí pravdivostní výraz znovu a podle výsledku se buď provede další iterace (v případě true) a nebo se neprovede a celý blok se přeskočí a průběh kódu bude pokračovat až za tímto blokem (v případě false). Uveďme si konkrétnější příklad:
while ($input ne "syrup") Po spuštění skriptu budete dotázáni na heslo a na toto heslo budete dotazováni do doby, než zadáte správné heslo "syrup". Všimněte si, že pro práci se standardním vstupem se používá zápis <STDIN>.
Pokud budeme chtít provést příkazy v případě, že pravděpodobnostní výraz bude vyhodnocen jako
nepravda (false), můžeme použít příkaz
until (pravdivostni_vyraz) Další formou cyklů je struktura zápisu, kdy je vyhodnocení pravděpodobnostního výrazu prováděné na konci bloku - tzn. že blok proběhne minimálně jednou. Obecný zápis by vypadal takto:
do
Využívá se tedy kromě samotného příkazu
$pokus = 0; Toto je jakási "vylepšená" verze našeho skriptu, který jsem uvedl výše a dělá úplně to samé, pouze s tím rozdílem, že omezuje zadávání hesla na pět pokusů. Jinak tento příklad slouží pouze jako názorná ukázka fungování cyklů a nemá v této podobě praktického využití.
Při tvorbě iterací lze dále využít příkaz
for (pocatecni_hodnota; pravdivostni_vyraz; zmena_hodnoty) Iterace budou probíhat do doby než bude splněno pravdivostní vyhodnocení, kde první hodnota, která bude testována je první argument a jeho změna po každém průchodu je argument třetí. Argumenty jsou odděleny středníky. Pokud potřebujeme více výchozích hodnot nebo změn, lze je oddělit čárkami. Lepší bude ukázat si příklad:
for ($i=1; $i<=10; $i++) Tímto jsme vytvořili skript, který vytvoří deset iterací - tzn. tělo skriptu proběhne desetkrát. Nekonečný cyklus by mohl vypadat takto:
for (;;)
Již zmíněný příkaz
foreach $i (1
.. 10) Zápis "1 .. 10" charakterizuje vlastně pole, kde je deset prvků, které představují posloupnost čísel od 1 do 10. I když jsme pole ještě neprobírali, ukážeme si ten samý příklad s polem:
@pole = (1,2,3,4,5,6,7,8,9,10) Dále se podíváme na některé dodatkové a často potřebné příkazy k cyklům. Pokud budete chtít
"násilně" ukončit cyklus, i když ještě neproběhly všechny iterace, uděláte to příkazem
Pokud budete chtít ukončit aktuální (tzn. právě probíhající) cyklus, provedeme to příkazem
Příkaz
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |