Professional Documents
Culture Documents
05 UpravljackeNaredbe
05 UpravljackeNaredbe
Naredbe uslovljavanja
upravljanje izvravanjem programa na osnovu uslova koji
su poznati u trenutku izvravanja
Upravljake naredbe Naredbe ciklusa
izvravanje (ponavljanje) jedne naredbe ili bloka naredbi
potreban broj puta, zavisno od uslova
Naredbe skoka
prekidanje izvravanja redosleda naredbi i nastavljanje na
definisanom mestu, tj. preskakanje naredbi
1 2
3 4
Primeri za if Ugnjedeni uslovi
int a, b;
// a i b dobijaju neke vrednosti ... if(i == 10) {
if(a < b) a = 0; if(j < 20) a = b;
else b = 0; if(k > 100) c = d;
else a = c; // ovaj else se odnosi na uslov if(k > 100)
int brojPodataka, n; }
// ... else a = d; // ovaj else se odnosi na uslov if(i == 10)
if(brojPodataka > 0) {
ObradiPodatke(); // Blok od dve naredbe u if delu
brojPodataka -= n;
}
else
PrikupiPodatke(); // Jedna naredba u else delu
int i = n; // Naredba koja ne pripada if-else delu
5 6
7 8
Primer za if else if
class GodisnjaDobaSaIfElseIf {
Naredba switch
public static void main(String args[]) { Grananje u vie putanja zavisno od vrednosti izraza
int mesec = 4; // April
Opti oblik
String godisnjeDoba;
switch(izraz) {
if(mesec==12 || mesec==1 || mesec==2)
godisnjeDoba = "zima"; case vrednost1:
else if(mesec==3 || mesec==4 || mesec==5) niz_naredbi1;
godisnjeDoba = "prolee"; [break;]
else if(mesec==6 || mesec==7 || mesec==8) case vrednost2:
godisnjeDoba= "leto";
niz_naredbi2;
else if(mesec==9 || mesec==10 || mesec==11)
godisnjeDoba = "jesen";
[break;]
else ...
godisnjeDoba = "nepostojei mesec"; default:
System.out.println("Kada je mesec april, godinje doba niz_naredbiN;
je " + godisnjeDoba + "."); }
}
}
Kada je mesec april, godinje doba je prolee. 9 10
Primer za switch
Naredba switch class PrimerZaSwitch {
izraz je jedan od tipova: byte, short, int ili char public static void main(String args[]) {
Svaka od vrednosti je jedinstven literal (konstanta) for(int i=0; i<6; i++)
Ne sme se ponoviti ista vrednost u istom switch switch(i) {
case 0: System.out.println("i je nula."); break;
Sa break se zavrava switch
case 1: System.out.println("i je jedan."); break;
Ako ne postoji break nastavlja se izvravanje sledeeg case 2: System.out.println("i je dva."); break;
case case 3: System.out.println("i je tri."); break;
Deo default je opcioni default: System.out.println("i je vee od tri.");
}
}
}
i je nula.
i je jedan.
i je dva.
i je tri.
i je vee od tri.
11 i je vee od tri. 12
Primer za switch bez break Godinja doba sa switch
class PrimerBezBreak { class GodisnjaDobaSaSwitch {
public static void main(String args[]) {
public static void main(String args[]) {
int mesec = 4;
for(int i=0; i<9; i++) String godisnjeDoba;
switch(i) { switch (mesec) {
case 0: System.out.println("i = 0"); case 12:
case 1:
case 1: case 2: godisnjeDoba = "zima"; break;
case 2: System.out.println("i < 3"); break; case 3:
case 3: case 4:
case 5: godisnjeDoba = "prolee"; break;
case 4: System.out.println("i < 5"); break;
case 6:
default: System.out.println("i >= 5"); case 7:
} case 8: godisnjeDoba = "leto"; break;
case 9:
}
case 10:
} case 11: godisnjeDoba = "jesen"; break;
default: godisnjeDoba = "nepostojei mesec";
i=0 i<5
}
i<3 i >= 5 System.out.println("Kada je mesec april, godinje deoba je " +
i<3 i >= 5 godisnjeDoba + ".");
i<3 i >= 5 }
13 } 14
i<5 i >= 5
15 16
Naredbe ciklusa Petlja while
Izvravanje (ponavljanje) jedne naredbe ili bloka naredbi Opti oblik while petlje
potreban broj puta, zavisno od uslova
while(uslov)
telo_petlje
Naredbe ciklusa (petlje)
while uslov je proizvoljan logiki izraz
do while telo_petlje je jedna naredba (moe biti i prazna
for naredba) ili blok naredbi
telo_petlje se ponavlja sve dok uslov ima
vrednost true
while petlja je sa proverom na vrhu, tj. ako uslov
ima vrednost false pri prvoj proveri, ne ulazi se u
petlju, tj. telo_petlje se ne izvrava nijednom
17 18
19 20
Petlja do while Primer za do while
class PrimerZaDoWhile {
Opti oblik do while petlje public static void main(String args[]) {
int n = 5; // Za n=0 petlja bi se izvrila jednom
do do {
telo_petlje System.out.println("Vrednost n je " + n);
while(uslov); n--;
} while(n > 0);
uslov je proizvoljan logiki izraz }
telo_petlje je jedna naredba ili blok naredbi }
do while petlja je sa proverom na dnu: Vrednost n je 5
telo_petlje se izvrava jednom a posle toga se Vrednost n je 4
Vrednost n je 3
proverava uslov
Vrednost n je 2
ako uslov ima vrednost true, telo_petlje se Vrednost n je 1
izvrava ponovo, a ako je vrednost false izlazi se iz
petlje Za n=0 rezultat bi bio
21 Vrednost n je 0 22
Vrednost n je 5
Vrednost n je 4
Vrednost n je 3
Vrednost n je 2
Vrednost n je 1
23 24
Petlja for
Primer za for
inicijalizacija je izraz
izvrava se samo jednom na poetku pri ulasku u petlju class PrimerZaFor {
public static void main(String args[]) {
obino inicijalizuje upravljaku promenljivu petlje
int n;
uslov je logiki izraz, proverava se pre izvravanja tela
for(n=5; n>0; n--)
petlje System.out.println("Vrednost n je " + n);
ako je vrednost true izvrava se telo petlje }
ako je false ne izvrava se telo petlje i izlazi se iz petlje }
obino zavisi od upravljake promenljive petlje
telo_petlje je jedna naredba ili blok naredbi Vrednost n je 5
Vrednost n je 4
iteracija je izraz Vrednost n je 3
izvrava se posle tela petlje Vrednost n je 2
obino menja upravljaku promenljivu petlje Vrednost n je 1
31 32
Ugnedene for petlje Naredbe skoka
class UgnjezdeneForPetlje {
public static void main(String args[]) { Prekidanje izvravanja redosleda naredbi i nastavljanje
for(int i=0; i<5; i++) { na definisanom mestu, tj. preskakanje naredbi
for(int j=i; j<5; j++) break
System.out.print(i); continue
System.out.println();
return
}
}
}
00000
1111
222
33
4
33 34
35 36
Izlazak iz for petlje sa break Izlazak iz while petlje sa break
class BreakPrekidaForPetlju { class BreakPrekidaWhilePetlju {
public static void main(String args[]) { public static void main(String args[]) {
for(int i=0; i<100; i++) { int i=0;
if(i == 5) break; // prekidanje petlje kad je i=5 while(i<100) {
System.out.println("i: " + i); if(i == 5) break; // prekidanje petlje kad je i=5
} System.out.println("i: " + i);
System.out.println("Petlja je zavrena."); i++;
} }
} System.out.println("Petlja je zavrena.");
}
i: 0 }
i: 1
i: 0
i: 2
i: 1
i: 3 i: 2
i: 4 i: 3
Petlja je zavrena i: 4
37 Petlja je zavrena 38
class PrimerZaReturn {
public static void main(String args[]) {
boolean t = true;
System.out.println("Pre naredbe return.");
if(t) return; // povratak pozivaocu
System.out.println("Ovo se ne izvrava.");
}
}
49