Zßkladnφ zp∙soby v∞tvenφ a cykl∙ v JavaScriptu jsou p°φkazy if, while a for.
if(podmφnka) {program} | jestli╛e je spln∞na podmφnka, vykovßvß se program |
while(podmφnka) {program} | program se opakuje, dokud trvß podmφnka |
for(iniciace; podmφnka; nav²╣enφ){program} |
cyklus (vykonßvan² v∞t╣inou p°esn∞ n∞kolikrßt) |
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.
P°φkaz continue skoΦφ na zaΦßtek cyklu.