5 NAREDBE
Klasifikacija naredbe upravljačke prosta naredba strukture blok selekcije ciklusi naredbe iskoka 2
prosta naredba definisana je kao izraz; primeri: x = 1; y = 2*z -3; ! 3
{ definicije i naredbe} blok blok je upravljačka struktura koja odgovara sekvenci, dopunjenoj definicijama definicije su potpuno ravnopravne sa naredbama i mogu se sa njima mešati pravilo: svaki identifikator pre prve upotrebe mora biti definisan opšti oblik bloka: { definicije i naredbe} blok se može labelirati uključujući i druge blokove 4
{ x = 1; y += x; double z = x + y; x *= z; { double t; t = Math.sin(y); y -= 2*t; } domet z domet t 5
selekcije iste su kao i u C-u razlika je samo u načinu realizacije logičkog tipa kojim se upravlja naredbama if, jer java ima tip boolean naredba switch se uopšte ne razlikuje od iste naredbe u C-u 6
naredbe if if(log_izraz) naredba if(log_izraz) naredba1 else naredba2 true naredba false log_izraz false true naredba2 naredba1 7
naredba switch potpuno ista kao u C-u, uključujući i potrebu primene skoka break 8
u novijim verzijama može i String! switch(celobrojni_izraz) { case c1: niz_naredbi1 case c2: niz_naredbi2 ............. default: niz_naredbi0 case ck: niz_naredbik } celobrojni izraz ck c1 c2 u novijim verzijama može i String! niz_naredbi1 ! niz_naredbi2 default deo default nije obavezan niz_naredbi0 niz_naredbik 9
uočiti višestruke case labele uloga break i+j=-4 i+j=-4 switch(i+j) { case 2: x = 1; y++; case 0: case -4: z*=t; t--; case 6: p = q = r = s = 0; case 1: x++; } switch(i+j) { case 2: x = 1; y++; break; case 0: case -4: z*=t; t--; break; case 6: p = q = r = s = 0; break; case 1: x++; } uočiti višestruke case labele 10
ciklusi skoro isti kao i u C-u razlika je ponovo u načinu realizacije logičkog tipa kojim se upravlja naredbama ciklusa, jer java ima tip boolean 11
while(log_izraz) naredba ciklus while while(log_izraz) naredba false log_izraz naredba true 12
for(inicijalizacija;uslov;modifikacija) naredba ciklus for for(inicijalizacija;uslov;modifikacija) naredba inicijalizacija: izraz1,...,izrazn uslov: logički izraz modifikacija: izraz false true inicijalizacija naredba uslov modifikacija 13
for(i=0,s=0;i<n;i++) s+=a[i]; u posebnom slučaju, brojačka promenljiva može se definisati unutar ciklusa i tada za domet ima samo taj ciklus for(int j=0;j<m;j++) z-=Math.cos(j); j važi samo unutar ciklusa 14
do naredba while(log_izraz); ciklus do-while do naredba while(log_izraz); log_izraz naredba false true 15
naredbe iskoka java nema naredbu goto! pošto ostale naredbe nemaju proizvoljno odredište, bolje ih je nazvati "naredbe iskoka" naredbe iskoka su: break continue i return 16
naredba break kao i u C-u, koristi se u dva slučaja: u okviru naredbe switch na uobičajeni način u okviru ciklusa, za momentalni iskok iz ciklusa (tj. za završetak ciklusa) 17
labelirana naredba break naredba break je pojačana varijantom koja koristi labele (razlog: nepostojanje goto) labelirati se mogu svi ciklusi blokovi opšti oblik labelirane naredbe break break labela; gde labela predstavlja labelu ciklusa ili bloka čije se izvršavanje prekida 18
nivo3: for(k=0;k<m;k++) { ..... break nivo1; ..... break nivo2; nivo1: while(i<n) { ......... nivo2: while(j>0) { nivo3: for(k=0;k<m;k++) { ..... break nivo1; ..... break nivo2; ..... break nivo3; //ili samo break; } 19
prvi: { ......... drugi: { treci: { ..... break prvi; ..... break drugi; ..... break treci; } 20
labelirana naredba continue samo kod ciklusa opšti oblik labelirane naredbe continue continue labela; gde labela predstavlja labelu ciklusa na čiju se sledeću iteraciju preskače 21
out: while(i != n) { ......... while(j<=k) { .... continue out; } ........ 22
naredba return koristi se u metodama sa identičnim formama kao i kod C-ovih potprograma 23