JavaScript switch naredba : switch Statement

Naredbe grananja : Conditional Statements

Kada imamo više izraza koje trebamo ispitati možemo koristiti if...else if naredbe za izvođenje višestrukog grananja. Međutim to nije najbolje riješenje, posebno ako se unutar izraza nalazi usporedba vrijednosti samo jedne varijable.

Počevši s inačicom JavaScript 1.2 moguće je koristiti switch naredbu koja riješava taj problem i radi to mnogo brže nego niz ponavljanja if...else if naredbi.

Osnovna sintaksa switch naredbe je određivanje izraza koji treba izračunati i više različitih naredbi koje se izvršavaju ovisno o vrijednosti izraza. Intepreter provjerava svaku naredbu case sve dok izraz nije true. Ako niti jedan ne odgovara, naredbe iza ključne riječi default bit će izvršene.

Sintaksa switch case naredbe:

switch (izraz)
{
  case stanje 1: naredbe;
                 break;

  case stanje 2: naredbe;
                 break;
   ...
  case stanje n: naredbe;
                 break;

  default: naredbe;
}

Web dizajn škola? - Odlično!

Break naredba : Break Statement

Break naredba omogućava da interpreter završi s izvođenjem switch case naredbe u slučaju kada je stanje izraza jednako zadanom stanju. U slučaju izostavljanja break naredbe interpreter će nastaviti izvođenje svih naredbi za sva slijedeća stanja izraza bez ispitivanja je li stanje ispunjeno.

Primjer:

<script type="text/javascript" >
//<![CDATA[
var ocjena='3';
document.write("Početak switch bloka.<br />");
switch (ocjena)
{
  case '5': document.write("Ocjena izvrstan. <br />");
            break;
  case '4': document.write("Ocjena vrlo dobar. <br />");
            break;
  case '3': document.write("Ocjena dobar. <br />");
            break;
  case '2': document.write("Ocjena dovoljan. <br />");
            break;
  case '1': document.write("Ocjena nedovoljan. <br />");
            break;
  default:  document.write("Nepostojeća ocjena. <br />")
}
document.write("Završetak switch bloka. <br />");
//]]>
</script>

Primjer će dati slijedeći rezultat:

Početak switch bloka.
Ocjena dobar
Završetak switch bloka.

Switch bez naredbe break : Without break Statement

Slijedeći primjer prikazuje što se događa u slučaju kada ne umetnemo break naredbu:

<script type="text/javascript" >
//<![CDATA[
var ocjena='3';
document.write("Početak switch bloka.<br />");
switch (ocjena)
{
  case '5': document.write("Ocjena odličan. <br />");
  case '4': document.write("Ocjena vrlo dobar. <br />");
  case '3': document.write("Ocjena dobar. <br />");
  case '2': document.write("Ocjena dovoljan. <br />");
  case '1': document.write("Ocjena nedovoljan. <br />");
  default:  document.write("Nepostojeća ocjena. <br />")
}
document.write("Završetak switch bloka. <br />");
//]]>
</script>

Primjer će dati slijedeći rezultat:

Početak switch bloka.
Početak switch bloka.
Ocjena dobar.
Ocjena dovoljan.
Ocjena nedovoljan.
Nepostojeća ocjena.
Završetak switch bloka.