Základní způsoby větvení a cyklů v JavaScriptu jsou příkazy if, while a for.
if(podmínka) {
příkazy prováděné při splnění podmínky;
}
else {
příkazy prováděné při nesplnění podmínky;
}
Jako podmínka se musí uvést výraz, jehož logická hodnota je true nebo false (pravda nebo nepravda).
Např.:
if (volby == "svobodne"){
document.write("Možná máme demokracii");
pokracovat = true;}
else {
document.write("Máme diktaturu"); pokracovat = false;}
Zápis je ve většině případů jednodušší. Např.:
if (puntiku != 12)
document.write("Nemáme celý ciferník!");
Jak je vidět, pokud je příkaz jenom jeden, nemusí se uzavírat do složených závorek. Také lze vynechat else, není-li potřeba.
Časté chyby u if:
Ternální operátor umožňuje rychlejší zápis rozhodování, pokud chci pouze přiřadit hodnotu proměnné. Syntaxe:
proměnná = podmínka ? hodnota1 : hodnota2;
Pokud je podmínka pravdivá, má proměnná hodnotu hodnota1, pokud je podmínka nepravdivá, má proměnná hodnotu hodnota2.
Pro větvení do více alternativ existuje příkaz switch, který ale nefunguje v trojkových verzích prohlížečů, proto je lepší jej nepoužívat. Sytaxe je:
switch(proměnná) {
case hodnota : příkaz;
case hodnota2 : příkaz2;
...
default : příkazx}
Cyklus s podmínkou na začátku. Sekvence vnitřních příkazů se provádí dokola, dokud platí podmínka. Jakmile podmínka neplatí, pokračuje program dál.
while (podmínka) {
sekvence příkazů
}
Následující příklad zvyšuje proměnnou o pět jednotek, dokud nebude větší nebo rovna třiceti:
while(promenna < 30) {
promenna += 5;
}
Časté chyby u while:
Cyklus s podmínkou na konci nefunguje v trojkových verzích prohlížečů. Syntaxe:
do
{sekvence příkazů}
while (podmínka)
Je-li podmínka pravdivá, cyklus se ukončí a program jde dál.
Cyklus obvykle určený pro daný počet opakování (třebaže to může být jinak). Syntaxe:
for (počáteční hodnota; podmínka; navýšení) { příkazy; }
Např. tento program vypíše všechny HTML velikosti písma:
for (i=1; i <= 7; i++) {
document.write("<font size=\"" + i + "\">Vzorek písma</font>");
document.write("<br>");
}
Zobrazte si příklad. Drobný komentář: používám proměnnou i, která má na počátku hodnotu 1. Navýšení i++ znamená, že při každém dalším průchodu cyklem se i zvýší o 1 (++ je navýšení o jedna). Trochu komplikovanější věcí je použití sekvence \" , což je způsob, jak do výstupu vložit uvozovky.
Cyklus přiřazuje proměnné postupně všechny vlastnosti objektu. Nefunguje v IE 3. Syntaxe:
for (proměnná in objekt)
{příkazy}
Příkaz break předčasně ukončí cyklus while nebo for.