JavaScript - Větvení

Větvení se užívá v momentě, kdy je třeba, aby se JavaScript rozhodl mezi dvěmi procedurami a více procedurami. Můžeme zjistit, zda-li byla vyplněna položka formuláře, otevřeno okno, jestli je číslo větší než 10...

Logické operátory

Chcete-li určit, zda je nějaká položka rovna 4, je vyplněn formulář, musíte k tomu použít operátory.

OperátorPopis
logické
&&Podmínky spojené tímto operátorem musí obě platit
||Alespoň jedna podmínka musí být pravdivá
!Vrátí opak podmínky (!10=-10)
porovnávací
<Je menší
>Je větší
<=Je menší nebo rovno
>=Je větší nebo rovno
==Je rovno

Důležité je vědět, jak logické operátory vyhodnocují. Pokud zadaná podmínka platí, vracejí hodnotu true (identické s 1), jinak vracejí false (identické s 0).

Rozhodovací operátor ? :

Rozhoduje se o tom, zda podmínka platí, pokud platí provede se A, pokud neplatí provede s B. proměnná = (podmínka)? A:B

cislo = 10;
cislo = (cislo==9 || cislo<20)? document.write("číslo je rovno 9 a nebo menší než dvacet"); : document.write("neplatí");

Na prvním řádku je deklarována proměnná 10. Na druhém rozhodujeme zda je cislo rovno 9 (pozor chceme-li zjistit, zda je rovno, píšeme ==, kdybychom zapsali jen =, skript by to považoval za deklaraci proměnné a podmínka by vždy platila), nebo (||) je menší než 20.

Důležité je logické operátory oddělit od podmínek mezerami. Pokud platí zadané podmínky, cyklus vrací hodnotu pravda, true, hodnotu 1. Pokud neplatí, vrátí nepravda, false, 0.

If, else

Podmínka if...else rozhoduje zda pro proměnnou platí zadané podmínky. Tuto konstrukci lze opakovat a používat i vnořeně.

if(podmínka) proces1;
else proces2;

Platí-li podmínka provede se proces1, jinak se provede proces2.

cislo = 10;
if (cislo==11) document.write("ahoj");
else{
if (cislo<4 && cislo>-23){
document.write("platí");
document.write("číslo je menší než 4")}
else document.write("Neplatné podmínky.");
}

Rozhodujeme zda cislo je rovno 11. Pokud není rozhoduje se, jestli je menší než 4 a zároveň větší než -23. Pokud ani tato podmínka neplatí, skript vypíše "neplatné podmínky". Pokud je proces pouze na jeden řádek, není třeba pstá složené závorky {}, pokud je proces delší, je třeba je použít. If, else lze používat vnořeně:

cislo = 10;
if(cislo == 9) document.write("9");
else if(cislo == 10 || cislo == 8){
  if(cislo == 8) document.write("8");
  else document.write("10")
  }
else document.write("7");

Tady máme tři kroky (if, else if, else) a navíc vnořenou podmínku v druhém kroku.

Switch

Nyní budeme zjišťovat, které možnosti je proměnná rovna:

jmeno = "Petr";
switch (jmeno){
case "Honza" :
document.write("Honza");
break;
case "Jiří" :
document.write("Jiří");
break;
default :
document.write("Petr");
}

Syntaxe:

switch (proměnná) {
case "hodnota1" : proces1; break;
case "hodnota2" : proces2; break;
default : proces3; 
}

Skript zjišťuje, zda je proměnná rovna hodnotě1, nebo hodnotě2. Pokud ani jedna nevyhovuje provede se proces u příkazu default. Jednotlivé procesy musí být odděleny příkazem break, jinak by se jich provádělo více.

Další: Dialogová okna



Doporučuji
Pro své weby používám *Webhosting C4: 20 GB prostoru, PHP, MySQL, e-maily, subdomény za 1200 Kč (zdarma 2 GB navíc každý rok). Více WebhostingC4.cz.
Potřebujete poradit?


Vyhledávání


Poradna

Pokud si nevíte rady, chcete kontakt na spolehlivého tvůrce webu, či vás zajímá cizí názor, ozvěte se.

Reklama