Presentation is loading. Please wait.

Presentation is loading. Please wait.

Glava 5 Uslovi i petlje.

Similar presentations


Presentation on theme: "Glava 5 Uslovi i petlje."— Presentation transcript:

1 Glava 5 Uslovi i petlje

2 Uslovi i petlje Sada diskutujemo komande programa koje nam dozvoljavaju da: Donosimo odluke Ponavljamo korake obrade u petlji U glavi 5 razmatramo: boole-ovske izraze uslovne komande poredjenje podataka komande ponavljanja iteratore jos tehnika crtanja jos GUI komponenti © 2004 Pearson Addison-Wesley. All rights reserved

3 Pregled Komanda if i uslovi Ostale uslovne komande Poredjenje podataka
Komanda while Iteratori Ostale komande ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

4 Tok kontrole Ukoliko nije receno drugacije, redoslijed izvodjenja komandi je linearan: jedna komanda iza druge u nizu Neke komande daju mogucnost da: Odlucimo kada izrsiti ili ne izvrsiti neku komandu Izvrsiti neku komandu i ponoviti, repetitivno Ove odluke se baziraju na boole-ovim izrazima (ili uslovima) koji uzimaju vrijednosti true ili false Redoslijed izvodjenja komandi naziva se tok kontrole © 2004 Pearson Addison-Wesley. All rights reserved

5 Uslovne komande Uslovna komanda daje nam mogucnost da izaberemo koja komanda ce biti izvrsena kao slijedeca Zbog toga ih ponekad zovemo komande selekcije Uslovne komande daju nam mogucnost donosenja osnovnih odluka Uslovne komande Jave su: if komanda if-else komanda switch komanda © 2004 Pearson Addison-Wesley. All rights reserved

6 Komanda if Komanda if ima slijedecu sintaksu: uslov mora biti
Boole-ov izraz. On mora Uzimati vrijednost true ili false. if je rezervisana rijec Jave if ( uslov ) komanda; Ako je uslov tacan, komanda se izvrsava. Ako je on false, komanda se preskace. © 2004 Pearson Addison-Wesley. All rights reserved

7 Logika komande if Provjera uslova true false komanda
© 2004 Pearson Addison-Wesley. All rights reserved

8 Boole-ovi izrazi Uslovi cesto koriste jedan od operatora jednakosti ili relacionih operatora Jave, koji vracaju Boole-ove rezultate: == jednako je != nije jednako < manje od > vece od <= manje ili jednako >= vece ili jednako Obratite paznju na razliku izmedju operatora jednakosti (==) i operatora dodjele (=) © 2004 Pearson Addison-Wesley. All rights reserved

9 Komanda if Primjer if komande:
if (sum > MAX) delta = sum - MAX; System.out.println ("The sum is " + sum); Prvo se provjeri uslov – vrijednost sum je veca ili nije veca od MAX Ako je uslov tacan, komanda dodjele se izvrsava – ako nije, preskace se. U svakom slucaju, poziv println se izvrsava slijedeci Vidi Age.java (strana 208) © 2004 Pearson Addison-Wesley. All rights reserved

10 Indentacija (Uvlacenje redova)
Komanda kontrolisana sa if naredbom je indentirana (uvucena) da bi pokazala odnos Koristenje konzistentnog stila za iindentaciju cini program jednostavnijim za citanje I Iako ne predstavlja razliku za kompajler, odgovarajuca indentacija je vazna “Uvijek kodirajte kao da je osoba koja ce raditi sa Vasim kodom agresivan psihopata koji zna Vasu adresu." -- Martin Golding © 2004 Pearson Addison-Wesley. All rights reserved

11 Komanda if Sta radi slijedeca komanda?
if (top >= MAXIMUM) top = 0; Postavlja top na nulu ako je aktuelna vrijednost na top veca ili jednaka vrijednosti na MAXIMUM if (total != roba + skladiste) inventoryError = true; Postavlj zastavicu na true ako vrijednost total nije jednaka sumi roba i skladiste Prioritet aritmetickih operatora je veci od prioriteta jednakosti i relacionih operatora © 2004 Pearson Addison-Wesley. All rights reserved

12 Logicki operatori Boole-ovi izrazi mogu koristiti slijedece logicke operatore: ! Logicko NOT && Logicko AND || Logicko OR Svi oni imaju Boole-ove operande i daju Boole-ove rezultate Logicko NOT je unarna operacija (ima samo jedan operand) Logicko AND i logicko OR su binarni operatori (svaki operise na dva operanda) © 2004 Pearson Addison-Wesley. All rights reserved

13 Logicko NOT Logicko NOT operacija takodje se naziva logicka negacija ili logicki komplement Ako su neki boole-ovi uslovi tacni, tada je !a false; ako je a false, tada je !a true Logicki izraz moze biti prikazan koristeci tabelu istinitosti a !a true false © 2004 Pearson Addison-Wesley. All rights reserved

14 Logicko AND i logicko OR
Logicki izraz AND a && b je tacan ako su oba a i b tacni, a netacan inace Logicki izraz OR a || b je tacan ako su a ili b ili oba tacni, a netacan inace © 2004 Pearson Addison-Wesley. All rights reserved

15 Logicki operatori Izrazi koji koriste logicke operatore mogu formirati slozene uslove if (total < MAX+5 && !found) System.out.println ("Processing…"); Svi logicki operatori imaju manji prioritet od relacionih operatora Logicko NOT ima veci prioritet od logickog AND i logickog OR © 2004 Pearson Addison-Wesley. All rights reserved

16 Logicki operatori Istinosna tabela pokazuje sve moguce true-false kombinacije izraza Posto && i || svaki imaju dva operanda, postoje cetiri moguce kombinacije uslova za a i b a b a && b a || b true false © 2004 Pearson Addison-Wesley. All rights reserved

17 Boole-ovi izrazi Specifican izraz moze se izracunati koristeci tabele istinitosti total < MAX found !found total < MAX && !found false true © 2004 Pearson Addison-Wesley. All rights reserved

18 Short-Circuited operatori
Procesiranje logickog AND i logickog OR je “short-circuited” Ako je lijevi operand dovoljan za odredjivanje rezultata, desni operand se ne sracunava if (count != 0 && total/count > MAX) System.out.println ("Testing…"); Ovaj nacin procesiranja mora se koristiti pazljivo © 2004 Pearson Addison-Wesley. All rights reserved

19 Pregled Komanda if i uslovi Druge uslovne komande Poredjeje podataka
Komanda while Iteratori Ostale komande ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

20 Komanda if-else Klauzula else moze se dodati na komandu if da bi cinila jednu if-else komandu if ( uslov ) komanda1; else komanda2; Ako je uslov tacan, izvrsava se komanda1; ako je uslov false, statement2 se izvrsava Jedna ili druga komanda bice izvrsene, ali ne obje Vidi Wages.java (strana 211) © 2004 Pearson Addison-Wesley. All rights reserved

21 Logika komande if-else
Ispitivanje uslova false komanda2 komanda1 true © 2004 Pearson Addison-Wesley. All rights reserved

22 Klasa Coin (Novcic) Ispitujemo klasu koja predstavlja novcic koji moze biti bacen Podaci sa instance (primjerka) se koriste za utvrdjivanje sta je trenutno palo (glava ili pismo) Vidi CoinFlip.java (strana 213) Vidi Coin.java (strana 214) © 2004 Pearson Addison-Wesley. All rights reserved

23 Ponovo o uvlacenju redova
Zapamtiti da je indentacija za citaoca, a da je ignorisana od strane kompjutera if (total > MAX) System.out.println ("Error!!"); errorCount++; Iako je ukljucen indentacijom, inkrement ce se pojaviti bez obzira je li uslov tacan ili nije © 2004 Pearson Addison-Wesley. All rights reserved

24 Komande bloka Vise komandi mogu biti grupisane zajedno u block komandu odvojene zagradama Blok komanda moze se koristiti gdje god je neka komanda pozvana u skladu a Java sintaksom if (total > MAX) { System.out.println ("Error!!"); errorCount++; } © 2004 Pearson Addison-Wesley. All rights reserved

25 Komande bloka U if-else komandi, if dio, ili else dio, ili oba, mogu biti blok komsnds if (total > MAX) { System.out.println ("Error!!"); errorCount++; } else System.out.println ("Total: " + total); current = total*2; Vidi Guessing.java (strana 216) © 2004 Pearson Addison-Wesley. All rights reserved

26 Uslovni operator Java ima uslovni operator koji koristi boole-ovski uslov za odredjivanje koji od dva izraza postaje tacan pri datoj evaluaciji Sintaksa je: uslov ? izraz1 : izraz2 Ako je uslov tacan, izraz1 dobiva vrijednost; ako je uslov netacan, izraz2 dobiva vrjednost Vrijednost cijelog uslovnog operatora je vrijednost selektovanog izraza © 2004 Pearson Addison-Wesley. All rights reserved

27 Uslovni operator Uslovni operator je slican sa if-else komandom, izuzev sto je on jedan izraz koji vraca vrijednost Na primjer: larger = ((num1 > num2) ? num1 : num2); Ako je num1 vece od num2, tada se vrijednost num1 dodjeljuje na larger; inace, num2 se dodjeljuje na larger Uslovni operator je ternarni jer on zahtijeva tri operatora © 2004 Pearson Addison-Wesley. All rights reserved

28 Uslovni operator Drugaciji primjer:
System.out.println ("Your change is " + count + ((count == 1) ? "Dime" : "Dimes")); Ako je count jednak 1, tada se stampa "Dime" Ako je count nesto drugo osim 1, tada se stampa "Dimes" © 2004 Pearson Addison-Wesley. All rights reserved

29 Ugnijezdene if komande
Komanda izvrsena kao rezultat neke if komande ili else clauzule mogla bi biti druga if komanda To zovemo nugnijezdene if komande Vidi MinOfThree.java (strana 219) Klauzula else se uparuje sa zadnjim neuparenim if (bez obzira sta indentacija implicira) Zagrade se mogu koristiti za odredjivanje kojoj komandi if pripada neka klauzula else © 2004 Pearson Addison-Wesley. All rights reserved

30 Komanda switch Komanda switch daje drugaciji nacin za odlucivaje koja ce komanda biti izvedena kao slijedeca Komanda switch izracunava neki izraz, a onda pokusava upariti rezultat sa jednim od nekoliko mogucih slucajeva Svaki slucaj sadrzi vrijednost i listu komandi Tok kontrole prenosi se na komandu pridruzenu prvom slucaju koji odgovara (je uparen) © 2004 Pearson Addison-Wesley. All rights reserved

31 Komanda switch Opsta sintaksa komande switch je: switch
case su rezervisane rijeci switch ( izraz ) { case vrijednost1 : lista_komandi1 case vrijednost2 : lista_komandi2 case vrijednost3 : lista_komandi3 case ... } Ako izraz odgovara vrijednost2, kontrola skace ovdje © 2004 Pearson Addison-Wesley. All rights reserved

32 Komanda switch Cesto se koristi komanda break kao zadnja komanda u svakoj listi case komande komanda break prenosi kontrolu izvrsavanja na kraj komande switch Ako se komanda break nije koristila, tok kontrole ce se premjestiti na slijedeci case Ponekada ovo moze biti pozeljno, ali cesto mi zelimo izvrsiti samo komandu pridruzenu jednom case © 2004 Pearson Addison-Wesley. All rights reserved

33 Komanda switch Primjer za switch komandu: switch (opcija) { case 'A':
aCount++; break; case 'B': bCount++; case 'C': cCount++; } © 2004 Pearson Addison-Wesley. All rights reserved

34 Komanda switch Komanda switch moze imati opcionalan default case
Default case nema asociranu vrijednost I prosto koristi rezervisanu rijec default Ako je prisutan default case, kontrola ce se prenijeti na njega ako nijedna druga vrijednost ne odgovara Ako ne postoji default case, a nijedna druga vrijednost ne odgovara, kontrola pada na komandu iza switch © 2004 Pearson Addison-Wesley. All rights reserved

35 Komanda switcht Izraz komande switch mora rezultirati u neki integral type, koji oznacava int ili char On ne moze imati boole-ovsku vrijednost, floating point vrijednost (float or double), ili drugi integer tip Implicitan Boole-ov uslov u komandi switch je jednakost Ne mozemo izvoditi provjeru relacija u switch komandi Vidi GradeReport.java (strana 225) © 2004 Pearson Addison-Wesley. All rights reserved

36 Pregled Komanda if i uslovi Ostale uslovne komande Poredjej podataka
Komanda while Iteratori Ostale komande ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

37 Poredjenje podataka Kada poredimo podatke koristeci boole-ovske izraze, vazno je da razumijemo nijanse nekih tipova podataka Razmotrimo neke kljucne situacije: Poredjenje floating point vrijednosti za jednakost Poredjenje karaktera Poredjenje stringova (alfabetski poredak) Poredjenje objekata I poredjenje referenci na objekte © 2004 Pearson Addison-Wesley. All rights reserved

38 Poredjenje vrijednosti u pokretnom zarezu
Rijetko se koristi operator jednakosti (==) kada poredimo dvije vrijednosti u pokretnom zarezu (float ili double) Dvije vrijednosti u pokretnom zarezu su jednake samo ako se njihove odgovarajuce binarne reprezentacije tacno podudaraju Racunanja cesto daju rezultate cije su razlike irelevantne U mnogim situacijama, mogu se smatrati dvije vrijednosti u pokretnom zarezu kao “dovoljno bliske” iako one nisu tacno jednake © 2004 Pearson Addison-Wesley. All rights reserved

39 Poredjenje vrijednosti u pokretnom zarezu
Za odredjivanje jednakosti dva float broja, moze se koristiti slijedeca tehnika: if (Math.abs(f1 - f2) < TOLERANCE) System.out.println ("Essentially equal"); Ako je razlika izmedju dva broja u pokretnom zarezu manja od tolerancije, oni se smatraju jednakim Tolerancija se moze postaviti na bilo koju odgovarajuci preciznost, kao sto je na pr © 2004 Pearson Addison-Wesley. All rights reserved

40 Poredjenje karaktera Kao sto smo vec rekli, skup karaktera Jave je zasnovan na skupu karaktera Unicode Unicode daje partikularnu nimericku vrijednost za svaki karakter, a prema tome daje i uredjenje Mozemo upotrebljavati relacione operatore nad karakterima bazirajuci se na ovom poretku Na primjer, karakter '+' je manji od karaktera ‘J’ jer u skupu karaktera Unicoda on dolazi prije Apendiks C daje pregled Unicode © 2004 Pearson Addison-Wesley. All rights reserved

41 Poredjenje karaktera U Unicode, karakteri cifara (0-9) su uzastopni i uredjeni Slicno, velika slova (A-Z) i mala slova (a-z) su uzastopni i uredjeni Karakteri Unicode vrijednosti 0 – 9 48 do 57 A – Z 65 do 90 a – z 97 do 122 © 2004 Pearson Addison-Wesley. All rights reserved

42 Poredjenje stringova Zapamtimo da je u Javi string karaktera jedan objekat Metoda equals moze biti pozvana sa stringovima da bi se utvrdilo sadrze li dva stringa tacno iste karaktere i u istom poretku Metoda equals vraca boole-ovski rezultat if (ime1.equals(ime2)) System.out.println (“Isto ime"); © 2004 Pearson Addison-Wesley. All rights reserved

43 Poredjenje stringova Ne mozemo koristiti relacione operatore za poredjenje stringova Klasa String sadrzi metodu compareTo za odredjivanje dolazi li jedan string prije drugog Poziv ime1.compareTo(ime2) vraca nulu ako su ime1 i ime2 jednaki (sadrze iste karaktere) vraca negativnu vrijednost ako je ime1 manje od ime2 vraca pozitivnu vrijednost ako je ime1 vece od ime2 © 2004 Pearson Addison-Wesley. All rights reserved

44 Poredjenje stringova if (ime1.compareTo(ime2) < 0) System.out.println (ime1 + “dolazi prije"); else if (ime1.compareTo(ime2) == 0) System.out.println (“Isto ime"); System.out.println (ime2 + “dolazi priije"); Posto je poredjenje karaktera i stringova zasnovano na skupu karaktera, ono se naziva leksikografski poredak © 2004 Pearson Addison-Wesley. All rights reserved

45 Leksikografski poredak
Leksikografski poredak nije striktno alfabetski kada su mala i velika slova ppomijiesana Na primjer, string “Veliki" dolazi prije stringa "fantastican" jer sva velika slova dolaze prije malih slova u Unicode Takodje, kraci stringovi dolaze prije dugih srtingova koji imaju isti prefiks (leksikografski) Dakle “briga" dolazi prije "brigada" © 2004 Pearson Addison-Wesley. All rights reserved

46 Poredjenje objekata Ooperator == moze biti primijenjen na objekte – on vraca true ako su dvije reference alijasi jedna druge Metoda equals definisana je za sve objekte, a osim ako je mi redefinisemo kada pisemo klasu, ona ima istu semantiku kao operator == Ona je redefinisana u klasi String tako da poredi karaktere u dva stringa Kada pisete neku klasu, mozete redefinisti metodu equals da vraca true pri odgovarajucim uslovima © 2004 Pearson Addison-Wesley. All rights reserved

47 Pregled Komanda if i uslovi Druge uslovne komande Poredjenje podataka
Komanda while Iteratori Druge komande ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

48 Komande ponavljanja Komande ponavljanja dozvoljavaju ponavljanje naredbi vise puta Cesto ih nazivamo petlje Slicno uslovnim komandama, one su kontrolisane preko boole-ovskih izraza Java ima tri vrste komandi ponavljanja: petlju while petlju do petlju for Programer treba izabrati odgovarajucu vrstu petlje prema situaciji © 2004 Pearson Addison-Wesley. All rights reserved

49 Komanda while Naredba while ima slijedecu sintaksu: while ( uslov )
Ako je uslov tacan, naredba se izvodi Tada se uslov ponovo provjerava, I ako je jos uvijek tacan, naredba se ponovo izvodi Naredba se izvodi sa ponavljanjem sve dok uslov ne postane false © 2004 Pearson Addison-Wesley. All rights reserved

50 Logika petlje while Provjera uslova false true naredba
© 2004 Pearson Addison-Wesley. All rights reserved

51 Komanda while Primjer naredbe while:
int brojac = 1; while (brojac <= 5) { System.out.println (brojac); brojac++; } Ako je uslov while petlje inicijalno netacan, naredba nikada nece biti izvrsena Dakle, tijelo while petlje ce biti izvrseno nula ili vise puta © 2004 Pearson Addison-Wesley. All rights reserved

52 Naredba while Razmatramo primjere rada petlji
Petlja moze biti koristena za upravljanje running sum Vrijednost sentinel je specijalna ulazna vrijednost koja predstavlja kraj ulaza Vidi Average.java (strana 229) Petlja takodje moze biti upotrijebljena za kontrolu ulaza, cineci program stabilnijim vidi WinPercentage.java (strana 231) © 2004 Pearson Addison-Wesley. All rights reserved

53 Beskonacne petlje Tijelo while petlje mora nekada napraviti uslov netacnim Ako to nije slucaj, tada imamo beskonacnu petlju, koja ce raditi sve dok korisnik ne prekine program Ovo je cesta logicka greska Treba uvijek provjeriti logiku programa i uvjeriti se da se petlje normalno zavrsavaju © 2004 Pearson Addison-Wesley. All rights reserved

54 Beskonacne petlje Primjer beskonacne petlje:
int brojac = 1; while (brojac <= 25) { System.out.println (brojac); brojac = brojac - 1; } Ova petlja ce nastaviti rad sve dok ne prekinemo rad programa (Control-C) ili dok se ne pojavi greska underflow © 2004 Pearson Addison-Wesley. All rights reserved

55 Ugnijezdene petlje Slicno ugnijezdenoj naredbi if, petlje takodje mogu biti ugnijezdene To jest, tijelo petlje moze sadrzati drugu petlju Za svaku iteracju spoljasnje petlje, unutrasnja petlja iterira se kompletno Vidi PalindromeTester.java (strana 235) © 2004 Pearson Addison-Wesley. All rights reserved

56 Ugnijezdene petlje Koliko ce puta biti odstampan string “Ovdje"?
brojac1 = 1; while (brojac1 <= 10) { brojac2 = 1; while (brojac2 <= 20) System.out.println (“Ovdje"); brojac2++; } brojac1++; 10 * 20 = 200 © 2004 Pearson Addison-Wesley. All rights reserved

57 Pregled Naredba if i uslovi Druge uslovne naredbe Poredjeje podataka
Naredba while Iteratori Druge komande ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

58 Iteratori Iterator je objekat koji nam dozvoljava da obradjujemo kolekciju podataka, jedan po jedan On dozvoljava da prodjemo kroz svaki podatak I obradimo ga ako treba Iterator objekat ima metodu hasNext koja vraca tacno ako postoji jedan ili vise podataka za obradu Metoda next vraca slijeeci podatak Iterator objekti se definisu koristenjem interfejsa Iterator, koji diskutujemo u Glavi 6 © 2004 Pearson Addison-Wesley. All rights reserved

59 Iteratori Vise klasa u standardnoj biblioteci Java su iteratori
Klasa Scanner je jedan iterator metoda hasNext vraca true ako postoji jos podataka za skaniranje metoda next vraca slijedeci skanirani token kao string Klasa Scanner takodje ima varijacije metode hasNext za specificne tipove podataka (kao sto je hasNextInt) © 2004 Pearson Addison-Wesley. All rights reserved

60 Iteratori Cinjenica da je Scanner iterator posebno je korisna kod citanja ulaza iz fajla (datoteke) Pretpostavimo da zelimo ucitati I obraditi listu URL-ova koji se cuvaju u jednoj datoteci Jedan skener moze se postaviti da cita svaku liniju ulaza sve dok ne naidje na kraj datoteke Drugi skener moze biti postavljen za svaki URL da obradjuje svaki dio puta Vidi URLDissector.java (strana 240) © 2004 Pearson Addison-Wesley. All rights reserved

61 Pregled Naredba if i uslovi Druge uslovne naredbe Poredjenje podataka
Naredba while Iteratori Druge naredbe ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

62 Naredba do naredba do ima slijedecu sintaksu: do { naredba; }
while ( uslov ) naredba se izvrsava jednom inicijalno, a onda se ispituje uslov Naredba se ponavlja sve dok uslov ne postane netacan © 2004 Pearson Addison-Wesley. All rights reserved

63 Logika do petlje naredba true Provjeera uslova false
© 2004 Pearson Addison-Wesley. All rights reserved

64 Naredba do Primjer do petlje:
int brojac = 0; do { brojac++; System.out.println (brojac); } while (brojac < 5); Tijelo do petlje izvrsava se najmanje jednom Vidi ReverseNumber.java (strana 244) © 2004 Pearson Addison-Wesley. All rights reserved

65 Poredjenje while i do while petlja do petlja naredba ispitivanje
true false ispitivanje uslova while petlja true ispitivanje Uslova naredba false do petlja © 2004 Pearson Addison-Wesley. All rights reserved

66 inkrement dio se izvrsava na kraju svake iteracije
Naredba for for naredba ima slijedecu sintaksu: inicijalizacija se izvodi jednom prije pocetka petljes naredba se izvrsava dok uslov postane netacan for ( inicijalizacija ; uslov ; inkrement ) naredba; inkrement dio se izvrsava na kraju svake iteracije © 2004 Pearson Addison-Wesley. All rights reserved

67 Logika for petlje inicijalizacija provjera uslova false naredba true
inkrement © 2004 Pearson Addison-Wesley. All rights reserved

68 Naredba for for petlja je funkcionalno ekvivalentna slijedecoj strukturi while petlje: inicijaliacija; while ( uslov ) { naredba; inkrement; } © 2004 Pearson Addison-Wesley. All rights reserved

69 Naredba for Primjer for petlje:
for (int brojac=1; brojac <= 5; brojac++) System.out.println (brojac); Sekcja inicijalizacije moze se koristiti i za deklarisanje varijabli Slicno while petlji, uslov za for petlju se testira prije izvrsavanja tijela petlje Dakle, tijelo for petlje biva izvrseno nula ili vise puta © 2004 Pearson Addison-Wesley. All rights reserved

70 Naredba for Sekcija inkrementiranja moze izvesti bilo koji racun
for (int num=100; num > 0; num -= 5) System.out.println (num); for petlja je dobro podesena za izvrsavanje naredbi odredjeni broj puta koji se moze izracunavati ili odrediti unaprijed Vidi Multiples.java (strana 248) Vidi Stars.java (strana 250) © 2004 Pearson Addison-Wesley. All rights reserved

71 Naredba for Svaki izraz u hederu for petlje je opcionalan
Ako je inicijalizacija izostavljena, inicijalizacija nece biti izvedena Ako je uslov izostavljen, smatra se da je uvijek tacan, pa prema tome kreira beskonacnu petlju Ako je inkrement izostavljen, operacija inkrementiranja nece biti izvrsena © 2004 Pearson Addison-Wesley. All rights reserved

72 Iteratori i for petlja Podsjetimo se da je iterator objekat koji nam dozvoljava da obradimo svaki podatak u kolekciji Varijanta for petlje uproscava repetitivnu obradu podataka Na primjer, ako je BookList iterator koji upravlja objektima tipa Book, slijedeca petlja ce stampati svaku knjigu (book): for (Book myBook : BookList) System.out.println (myBook); © 2004 Pearson Addison-Wesley. All rights reserved

73 Iteratori i for petlja Ovaj stil for petlje moze se citati "for svako Book u BookList, …" Ponekad iterator verziju for petlje nazivamo foreach petlja To eliminise potrebu eksplicitnog zvanja metoda hasNext i next To je takodjer korisno kod obrade nizova, koji ce biti definisani u Glavi 7 © 2004 Pearson Addison-Wesley. All rights reserved

74 Pregled Naredba if i uslovi Druge uslovne komande Poredjenje podataka
Naredba while Iteratori Druge naredbe ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

75 Tehnike crtanja Uslovi i petlje poboljsavaju nase mogucnosti generisanja interesantne grafike Vidi Bullseye.java (strana 252) Vidi BullseyePanel.java (strana 253) Vidi Boxes.java (strana 255) Vidi BoxesPanel.java (strana 256) © 2004 Pearson Addison-Wesley. All rights reserved

76 Odredjivanje strukture dogadjaja
Napomenimo da interaktivni GUIs zahtijeva postavljanje relacije izmedju komponenti I sluaslaca koji odgovaraju na dogadjaje komponenti Jedan objekat slusalac moze biti koristen da slusa dvije razne komponente Izvor dogadjaja moze biti odredjen koristenjem metode getSource dogadjaja poslanog slusaocu Vidi LeftRight.java (strana 258) Vidi LeftRightPanel.java (strana 259) © 2004 Pearson Addison-Wesley. All rights reserved

77 Pregled Naredba if i uslovi Druge uslovne naredbe Poredjenje podataka
Naredba while Iteratori Druge naredbe ponavljanja Odluke i grafika Jos komponenti © 2004 Pearson Addison-Wesley. All rights reserved

78 Okviri za dijalog dialog box je prozor koji se pojavljuje na nekom aktivnom prozoru Moze se koristiti za: prenos informacije potvrdu akcije dopusta korisniku unos podataka izbor boje izbor datoteke Okvir za dijalog obicno ima specificnu, individualnu namjenu, a korisnikova interakcija sa njim je kratka © 2004 Pearson Addison-Wesley. All rights reserved

79 Okvir za dijalog Klasa JOptionPane obezbjedjuje metode koje pojednostavljuju kreiranje nekih tipova okvira za dijalog Vidi EvenOdd.java (strana 262) Mi razmatramo dijalog bokseve za izbor boje I datoteka u Glavi 9 © 2004 Pearson Addison-Wesley. All rights reserved

80 Okviri za cekiranje (Check Boxes)
check box je dugme koje moze biti postavljeno na on ili off Predstavljeno je klasom JCheckBox Za razliku od dugmeta koje generise akcijski dogadjaj, check box generise item event kad god mijenja stanjne (cekiran on ili off) Interfejs ItemListener se koristi za definisanje slusalaca dogadjaja podataka check box zove itemStateChanged metodu listenera kada je upotrijebljen © 2004 Pearson Addison-Wesley. All rights reserved

81 Check Boxes Analiziramo program koji koristi okvire za cekiranje da bi odredio stil labele tekstualnog stringa On koristi klasu Font, koja predstavlja font karaktera: family name (kao Times ili Courier) style (bold, italic ili both) duzinu fonta (size) Vidi StyleOptions.java (strana 265) Vidi StyleOptionsPanel.java (strana 266) © 2004 Pearson Addison-Wesley. All rights reserved

82 Radio dugmad Grupa radio buttons predstavlja skup disjunktnih opcija – samo jedna moze biti izabrana u datom trenutku Kada je radio dugme iz grupe selektovano, dugme koje je bilo "on" u grupi automatski se prebacuje na off Za definisanje grupe radio dugmadi koji ce raditi zajedno, svako radio dugme se dodaje na jedan ButtonGroup objekat Radio dugme generise akcijski dogadjaj © 2004 Pearson Addison-Wesley. All rights reserved

83 Radio Dugmad Pogledajmo program koji koristi radio dugmad za odredjivanje linije teksta za prikazivanje Vidi QuoteOptions.java (strana 269) Vidi QuoteOptionsPanel.java (strana 270) Uporedi check box sa radio buttons Check boxes rade nezavisno da bi dali boole-ovu opciju Radio buttons rade u grupi I daju skup disjunktnih opcija © 2004 Pearson Addison-Wesley. All rights reserved

84 Sazetak U Glavi 5 razmatrani su: Boole-ovi izrazi Uslovne naredbe
Poredjenje podataka Naredbe ponavljanja Iteratori Jos tehnika crtanja Jos GUI komponenti © 2004 Pearson Addison-Wesley. All rights reserved


Download ppt "Glava 5 Uslovi i petlje."

Similar presentations


Ads by Google