next up previous contents
Next: 3.3.5 Posebne naredbe za Up: 3.3 Petlje i uvjetne Previous: 3.3.3 if-else-end struktura

3.3.4 switch-case struktura

Ova je struktura pogodna u slučaju kada je potrebno više puta ispitivati istinitost izraza a na osnovu jednog argumenta. Forma ove strukture je
 switch izraz
    case test_izraz1
        naredbe1...
    case test_izraz2
        naredbe2...
    otherwise
        naredbe3
 end
Ovdje izraz mora biti skalar ili znakovna varijabla. Ukoliko je test_izraz1 isinit izvršavaju se naredbe1, a ukoliko taj izraz nije istinit prelazi se na testiranje izraza test_izraz2 i ako je on isinit izvršavaju se naredbe2, a ako ne (dakle nije istinit ni test_izraz1 ni test_izraz2) izvršavaju se naredbe3. Pokažimo to na jednostavnom primjeru
 % primjer za 'switch-case' strukturu
 x=2.7;    % velicina u [cm]
 units='m' % zelim je pretvoriti u 'units'
 switch units
    case {'inch','in'}
        y=x*2.54;
    case {'feet','ft'}
        y=x*2.54*12;
    case {'meter','m'}
        y=x/100;
    case {'milimeter','mm'}
        y=x*10;
    case {'centimeter','cm'}
        y=x;
    otherwise
        disp(['Nepoznata jedinica:', units])
        y=nan;
 end
Izvršavanjem ovog primjera dobijamo konačnu vrijednost y=0.027.



Milan Vrdoljak, 2007-10-15