abc Matlab - elektronski priručnik
VII dio Dodaci /APPENDIX/ - 7.1. Programiranje u Matlabu 1

7.1.3. Kontrola toka
7.1.3.4. switch-case konstrukcija

Sintaksa switch-case konstrukcije je

switch izraz (skalar ili string)
   case vrijednost1 (izvršava se ako je izraz evaluiran na vrijednost1)
       komande
   case vrijednost2 (izvršava se ako je izraz evaluiran na vrijednost2)
       komande
.
.
.
    otherwise
        naredbe
end

Switch poredi ulazni izraz sa svakom case vrijednošću. Kada se pronađe slaganje on izvršava pridružene komande.

U sljedećem primjeru slučajni cijeli broj x generisan je iz skupa {1, 2, … , 10}. Ako je x = 1 ili x = 2, tada se poruka Vjerovatnoća = 20% pojavljuje na ekranu. Ako je x = 3 ili 4 ili 5, tada se prikazuje poruka Vjerovatnoća = 30%, inače se generiše poruka Vjerovatnoća = 50%. Skript fajl fswitch koristi switch kao alat za manipulisanje svim pomenutim slučajevima

% Script file fswitch.

x = ceil(10*rand); % Generise slucajni cio broj u {1, 2, ... , 10}
switch x
    case {1,2}
        disp('Vjerovatnoca = 20%');
    case {3,4,5}
        disp('Vjerovatnoca = 30%');
    otherwise
        disp('Vjerovatnoca = 50%');
end

Primijetimo upotrebu vitičastih zagrada nakon riječi case. Ovo kreira tzv. ćelijski niz umjesto jednodimenzionalnog niza, koji zahtijeva upotrebu uglastih zagrada.

Ovdje su nove MATLAB funkcije koje su korištene u fajlu fswitch

rand – uniformno distribuirani slučajni brojevi u intervalu (0, 1)
ceil – zaokružuje prema plus beskonačnosti
disp – prikazuje string/niz na ekranu

Testirajmo ovaj kod deset puta

for k = 1:10
fswitch
end

Vjerovatnoca = 50%
Vjerovatnoca = 30%
Vjerovatnoca = 50%
Vjerovatnoca = 50%
Vjerovatnoca = 50%
Vjerovatnoca = 30%
Vjerovatnoca = 20%
Vjerovatnoca = 50%
Vjerovatnoca = 30%
Vjerovatnoca = 50%

Kontrola toka - if-else-end konstrukcije    <    Index    >    Relacioni i logički operatori