<<< PŘEDCHOZÍ           DALŠÍ >>>


Řídící struktury

S vašimi dosavadními znalostmi jste schopni napsat jednoduchý kód, v němž bude každý příkaz proveden právě jednou. Řídící struktury umožňují spouštět části kódu opakovaně nebo jen za určitých podmínek. Pokud obsahují tyto části kódu více než jeden (případně žádný) příkaz, je nutné je uzavřít do složených závorek { }.

V JavaScriptu existují tři základní typy řídících struktur a to if, while a for. První dvě pracují zcela stejně jako if a while v Pascalu, třetí se od běžného Pascalovského for cyklu mírně liší. Ve všech figuruje podmínka. Podmínka je libovolný výraz, jehož výsledek je true nebo false a nebo číslo. Číslo 0 je ekvivalentní výsledku false, libovolné jiné výsledku true.

Příkaz if

if (podmínka) {

příkazy pro if blok

} else {

příkazy pro else blok

}

Jestliže je splněna podmínka, vykonají se příkazy pro if blok, když není, vykonají se příkazy pro else blok. Část else není povinná.

Příklad:

Skript rozhodne o tom, zda je číslo 15 sudé nebo liché. Pomocí alert okénka zobrazí výsledek.

Výpis sudostif.html

var x=15

if ( x%2==0 )
// jestliže je číslo 15 dělitelné dvěma tj. 15% 2 je 0

alert("Číslo " + x + " je sudé. ")
// zobraz alert dialogové okénko s textem Číslo 15 je sudé.

else // pokud tato podmínka není splněna tj. 15%2 není 0

alert("Číslo "+ x + " je liché. ")
// zobraz alert dialogová okénko s textem Číslo 15 je liché.

Ternární operátor

(podmínka) ? true_příkaz : false_příkaz

Jestliže je splněna podmínka, vykoná se true_příkaz, když není, vykoná se false_příkaz. V části pro true_příkaz, respektive false_příkaz, může být maximálně jeden příkaz. Má stejný význam jako:

if (podmínka) { true_příkaz } else { false_příkaz }

Zpravidla se dává před tímto operátorem přednost příkazu if.

Příklad:

Jakou hodnotu bude mít x po provedení příkazu

x = (y<10) ? 10 : y-10

když víme, že y = 100?

Jelikož podmínka 100<10 není splněna, vyhodnotí se výraz y-10 a jeho hodnota se přiřadí proměnné x. Hodnota proměnné x, po provedení tohoto příkazu, bude 90.

Příkaz while (while cyklus)

while (podmínka) {

žádný nebo více příkazů while bloku

}

Jestliže je splněna podmínka, vykonají se příkazy while bloku. Potom se opět vyhodnotí podmínka. Jestliže je splněna, vykonají se příkazy while bloku. Následuje opět vyhodnocení podmínky Ľ Tento proces se opakuje až do chvíle, kdy podmínka splněna není a nebo je cyklus přerušen speciálním příkazem (viz. níže). V tom případě se už nevykonají příkazy while bloku a pokračuje se dalším příkazem.

Pokud není záměrem vytvořit nekonečný cyklus, pak podmínka obsahuje nejméně jednu proměnnou, jejíž hodnota je měněna (aktualizována) příkazem umístěným ve while bloku nebo je ve while bloku umístěn příkaz break (viz. níže).

Příklad:

Skript vypočítá 10!. Pomocí alert okénka zobrazí výsledek.

Výpis fakwhile.html

var x=1 // pomocná proměnná

var fak=1 // faktoriál

while (x<=10) {
// pokud je x menší rovno 10, tj. podmínka je splněna

fak*=x // fak=fak * x

x++ // k x přičti 1, aktualizace proměnné x

}

// pokud není x<=10 ukonči while cyklus

alert(" 10! je "+fak) // zobraz alert dialogové okénko

Příkaz for (for cyklus)

for (počáteční příkaz; podmínka; akt_příkaz) {

žádný nebo více příkazů for bloku

}

Nejprve se provede počáteční příkaz a potom je vyhodnocena podmínka. Jestliže je splněna, vykonají se příkazy for bloku. Poté je realizován akt_příkaz a následně vyhodnocena podmínka. Jestliže je splněna, vykonají se příkazy for bloku. Poté je realizován akt_příkaz a následně vyhodnocena podmínka. Jestliže je splněna, vykonají se příkazy for bloku. Poté je realizován akt_příkaz a následně vyhodnocena podmínka Ľ . Tento proces se opakuje až do chvíle, kdy podmínka splněna není a nebo je cyklus přerušen speciálním příkazem (viz. níže). V tom případě se už nevykonají příkazy for bloku a pokračuje se dalším příkazem.

Počáteční příkaz je vykonán pouze jednou a to před prvním průchodem příkazy for bloku. Obvykle se používá k inicializaci proměnné. Pokud proměnnou používáme pouze uvnitř bloku, je vhodné ji v rámci počátečního příkazu i deklarovat. Zpřehledňuje to kód.

Akt_příkaz je vykonán bezprostředně po příkazech for bloku, jako by byl umístěn za posledním příkazem v bloku for. Obvykle se používá ke změně hodnoty (k aktualizaci) proměnné, která je inicializována v počátečním příkazu.

Počáteční příkaz i akt_příkaz může obsahovat více příkazů oddělených logickým operátorem , (čárka). Příkazy oddělené čárkou se vykonávají očekávaným způsobem jeden po druhém. Počáteční příkaz, podmínka i akt_příkaz nemusí obsahovat žádný příkaz. Pokud není uvedena podmínka, tak je příkaz for vykonáván úplně stejně jako kdyby byla uvedena podmínka, která je vždy splněna. Pokud for blok neobsahuje příkaz break (viz. níže) jedná se o nekonečný cyklus.

Příklad:

Skript sečte čísla od 1 do 100. Pomocí alert okénka zobrazí výsledek.

Výpis sumfor.html

var suma=0 // součet

for (var x=1; x<=100; x++) // pro x od 1 do 100

suma+=x // suma=suma + x

alert("Suma od 1 do 100 je "+suma)
// zobraz alert dialogové okénko

Jak přesně funguje cyklus for v tomto příkladě? Nejprve je deklarovaná proměnná x na počáteční hodnotu 1. Jelikož je x<=100, provede se příkaz for cyklu, který k dosavadní hodnotě proměnné suma přičte x. Poté je x zvětšeno o 1 a následuje testování podmínky zda x<=100. Poslední dvě věty bych mohla opakovat do té doby, než x dosáhne hodnoty 101. V tu chvíli není podmínka x<=100 splněna a skript pokračuje dalším příkazem, který zobrazí alert dialogové okénko s výsledným součtem.


<<< PŘEDCHOZÍ           DALŠÍ >>>