Deo zbornika Učimo Javu
Naredba switch
Switch-case
naredba je zapravo kratica za određene vrste if
naredbi. Pogledajmo sljedeći niz if
naredbi koje se sve odnose na istu veličinu:
if (x == 0) doSomething0();
else if (x == 1) doSomething1();
else if (x == 2) doSomething2();
else if (x == 3) doSomething3();
else if (x == 4) doSomething4();
else doSomethingElse();
Ovaj bi se kod uz pomoć switch-case
naredbe mogao zapisati ovako:
switch (x) {
case 0:
doSomething0();
break;
case 1:
doSomething1();
break;
case 2:
doSomething2();
break;
case 3:
doSomething3();
break;
case 4:
doSomething4();
break;
default:
doSomethingElse();
}
U ovom primjeru x
mora biti varijabla ili izraz koji se izračunava ili pretvara u int
bez gubitka informacija. To znači da izraz mora vraćati rezultat tipa int
, byte
, short
ili char
. Izraz x
uspoređuje se redom s vrijednostima navedenim u svakoj case
naredbi dok se ne naiđe na podudarnost. U našem primjeru se x
uspoređuje s literalima, ali to također mogu biti varijable ili izrazi. Ako se ni u jednom slučaju ne pronađe podudarnost izvršava se akcija naznačena sa default
.
Kad je podudarnost pronađena, izvršava se sve što slijedi do kraja switch
bloka ili naredbe break
. Uobičajeno je stavljati break
naredbu na kraj svakog case
bloka, kako bi se izbjegli neočekivani efekti.
Izvor: Elliotte Rusty Harold, Java Lecture Notes, preveo Draško Budin, priredio Damjan Pavlica.