Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

1

Sintaksa Java
TM
jezika
Varijable
2
Tipovi podataka
Tip podatka odreuje skup vrijednosti koje varijabla
moe poprimiti i operacije koje se nad njom mogu
izvoditi. Java definira sljedee osnovne tipove podataka:
true / false logika vrijednost boolean
\u0000 do \uffff jedan znak (16-bit Unicode znak) char
1.7977 x 10
308
realni broj dvostruke prec. (64-bit IEEE 754) double
3.4028 x 10
38
realni broj jednostruke prec. (32-bit IEEE 754) float
9.2234 x 10
18
64-bitni cijeli broj u dvojnom komplementu long
2.1475 x 10
9
32-bitni cijeli broj u dvojnom komplementu int
-32768 do 32767 16-bitni cijeli broj u dvojnom komplementu short
-128 do +127 8-bitni cijeli broj u dvojnom komplementu byte
Raspon Opis Tip
3
Imena varijabli
Program dohvaa vrijednost varijable preko njenog
imena.
Ime varijable mora ispunjavati sljedee uvjete:
1. Mora biti legalni identifikator, tj. niz Unicode znakova
neograniene duljine koji poinje slovom,
2. Ne smije biti kljuna rije, logika vrijednost (true ili false), te
rezervirana rije null,
3. Mora biti jedinstveno u podruju dosega varijable.
Konvencija: Imena varijabli zapoinju malim slovom, a
imena klasa velikim. Za imena konstanti koriste se
velika slova. Ako ime varijable sadri vie rijei, rijei su
povezane i svaka rije osim prve poinje velikim
slovom. Znak _ moe se koristiti za odvajanje rijei, ali
se po konvenciji koristi samo za razdvajanje rijei u
imenu konstante.
4
Kljune rijei (keywords):
abstract double int strictfp **
boolean else interface super
break extends long switch
byte final native
synchronize
d
case finally new this
catch float package throw
char for private throws
class goto *
protecte
d
transient
const * if public try
continue
implement
s
return void
default import short volatile
do instanceof static while
(*) nije u upotrebi (**) ukljuena u Java 2
5
Primjeri imena varijabli:
godinaRodjenja
jedinstveniMaticniBroj
temperatura
i1
. . .
Za imena pomonih varijabli (npr. indeksi petlji)
uobiajeno se koriste slova i, j, k, m, n, po potrebi u
kombinaciji s brojevima. Slovo l nije preporuljivo
koristiti zasebno jer ga je lako zamijeniti s brojkom 1.
6
Primjeri deklaracije varijabli:
int i;
float temperaturaZraka;
float x, y=5.8F;
char c = 'A';
Napomene:
Jednom deklaracijom mogue je obuhvatiti vie varijabli, ija
imena treba odvojiti zarezom.
Kod deklaracije varijablu je mogue i inicijalizirati. Uz vrijednost
mogue je definirati i tip. Niz znamenki bez decimalne toke je
tipa integer. Broj je mogue oznaiti kao long stavljanjem 'l'
ili 'L' iza broja. Niz znamenki s decimalnom tokom ili slovom 'e'
ili 'E' je tipa double. Broj je mogue oznaiti kao float
stavljanjem 'f' ili 'F' iza broja. Character je bilo koji Unicode
znak izmeu jednostrukih navodnika. Boolean vrijednosti su
true i false.
7
Doseg varijable
Doseg varijable (eng. scope) definiran je kao dio
programa u kojem je varijablu mogue dohvatiti preko
njenog imena. Doseg takoer odreuje kada sustav
alocira i oslobaa memoriju za varijablu.
Mjesto deklaracije varijable odreuje njezin doseg.
Prema mjestu deklaracije varijable dijelimo u sljedee
kategorije:
8
Member varijabla je lan klase ili objekta. Deklarira se
unutar klase, ali izvan metoda. Njezin doseg je cijela
klasa. Deklarira se na sljedei nain (dijelovi u uglatim
zagradama nisu nuni):
[private/protected/public/package] [static] [final] tip ime;
Prvi dio deklaracije odreuje razinu pristupa varijabli (ako se ne
navede, podrazumijeva se package):
X X package
X X X X public
X X X protected
X private
world package subclass class Specifier
9
static odreuje da se deklarira varijabla klase, a ne varijabla
pojedine instance. U tom sluaju postoji samo jedna kopija
varijable neovisno o tome koliko je instanci (objekata) stvoreno.
final odreuje da je vrijednost varijable nepromjenjiva (tj. da
se radi o konstanti). Konstanti je mogue pridruiti vrijednost
unutar deklaracije, ili nakon deklaracije, ali samo jednom.
final double PI = 3.14159265359;
tip i ime varijable su nuan dio deklaracije.
Lokalna varijabla deklarira se unutar bloka naredbi i ima
doseg od mjesta deklaracije do kraja bloka:
naredba {
...
int i;
...
}
10
Parametar metode je argument metode koji se koristi za
prijenos vrijednosti metodi. Doseg parametra je cijela
metoda.
Parametar rutine za obradu iznimke
11
Sintaksa Java
TM
jezika
Operatori
12
Java podrava aritmetike operatore za cijele i realne
brojeve:
ostatak dijeljenja op1/op2 op1 % op2 %
dijeli op1 sa op2 op1 / op2 /
mnoi op1 i op2 op1 * op2 *
oduzima op2 od op1 op1 op2 -
zbraja op1 i op2 op1 + op2 +
Opis Upotreba Operator
Napomena: Ako je jedan od operanada string (niz znakova),
operator + pretvara i drugi operand u string, a rezultat je
nadovezivanje stringova.
13
Ako su operandi razliitog tipa, tip rezultata odreuje se
na sljedei nain:
Barem jedan od operanada je double. double
Barem jedan od operanada je float; niti jedan od
operanada nije double.
float
Niti jedan od operanada nije float ili double;
najmanje jedan od operanada je long.
long
Niti jedan od operanada nije float ili double; niti
jedan od operanada nije long.
int
Tip operanada Tip rezultata
14
Osim binarne, postoji i unarna verzija operatora + i -:
Mijenja predznak vrijednosti op op -
Pretvara op u int, ako je byte,
short ili char
+ op +
Opis Upotreba Operator
15
Dva skraena unarna operatora za uveanje i smanjenje
vrijednosti varijable za 1 su ++ i --:
Umanjuje op za 1; Vraa
vrijednost op poslije umanjivanja.
--op --
Umanjuje op za 1; Vraa
vrijednost op prije umanjivanja.
op-- --
Uveava op za 1; Vraa
vrijednost op poslije uveavanja.
++op ++
Uveava op za 1; Vraa
vrijednost op prije uveavanja.
op++ ++
Opis Upotreba Operator
16
Poredbeni operatori i logiki uvjeti
Poredbeni operatori usporeuju dva operanda i vraaju
logiku vrijednost ovisno o rezultatu usporedbe:
op1 i op2 su razliiti op1 != op2 !=
op1 i op2 su jednaki op1 == op2 ==
op1 je manji ili jednak op2 op1 <= op2 <=
op1 je manji od op2 op1 < op2 <
op1 je vei ili jednak op2 op1 >= op2 >=
op1 je vei od op2 op1 > op2 >
Vraa true ako: Upotreba Operator
Operandi op1 i op2 mogu biti bilo kojeg osnovnog tipa.
Za tip char usporeuju se vrijednosti koda. Ako je jedan
od operanada boolean, i drugi mora biti boolean.
17
Logiki uvjeti koriste se za formiranje sloenih logikih
izraza:
op1 i op2 su razliiti (logika
operacija "iskljuivo ILI")
op1 ^ op2 ^
op1 ili op2 su true, op2 se uvijek
ispituje
op1 | op2 |
op1 i op2 su true, op2 se uvijek
ispituje
op1 & op2 &
op je false !op !
op1 ili op2 su true, op2 se ispituje
samo ako je op1 false
op1 || op2 ||
op1 i op2 su true, op2 se ispituje
samo ako je op1 true
op1 && op2 &&
Vraa true ako: Upotreba Operator
18
Operatori posmaka i logiki operatori
Operatori posmaka pomiu bitove prvog operanda
desno ili lijevo (broj mjesta posmaka odreuje drugi
operand):
pomie bitove op1 u desno za op2
mjesta; ne prenosi predznak
op1 >>> op2 >>>
pomie bitove op1 u lijevo za op2
mjesta
op1 << op2 <<
pomie bitove op1 u desno za op2
mjesta
op1 >> op2 >>
Opis Upotreba Operator
19
Logiki operatori obavljaju logike operacije nad
pojedinim bitovima operanada:
komplement ~op ~
logika operacija EX ILI op1 ^ op2 ^
logika operacija ILI op1 | op2 |
logika operacija I op1 & op2 &
Opis Upotreba Operator
20
Operatori pridruivanja
Osnovni operator pridruivanja je "=". Pridruuje varijabli
s lijeve strane znaka jednakosti vrijednost varijable,
konstante ili izraza s desne strane.
Java, kao i C, omoguuje koritenje skraenih operatora
koji kombiniraju aritmetiku, logiku ili operaciju
posmaka i operaciju pridruivanja:
i = i + 5;
moemo skraeno pisati kao:
i += 5;
Tako pisani izrazi su pregledniji.
21
op1 = op1 >> op2 op1 >>= op2 >>=
op1 = op1 >>> op2 op1 >>>= op2 >>>=
op1 = op1 << op2 op1 <<= op2 <<=
op1 = op1 ^ op2 op1 ^= op2 ^=
op1 = op1 | op2 op1 |= op2 |=
op1 = op1 & op2 op1 &= op2 &=
op1 = op1 % op2 op1 %= op2 %=
op1 = op1 / op2 op1 /= op2 /=
op1 = op1 * op2 op1 *= op2 *=
op1 = op1 op2 op1 -= op2 -=
op1 = op1 + op2 op1 += op2 +=
Ekvivalentan dulji zapis Upotreba Operator
22
Ostali operatori
vraa true ako je objekt op1
direktno ili indirektno instanca
klase op2
op1 instanceof op2 instanceof
stvara novi objekt ili polje new
pretvara vrijednost u zadani tip npr. (byte)i (tip)
argumenti u pozivu metode (p1,p2,...,pn) (parametri)
dohvat varijabli i metoda
instance objekta ili klase
.
deklariranje i stvaranje polja,
dohvat elemenata
[]
ako je op1 true vraa op2,
inae vraa op3
op1 ? op2 : op3 ?:
Opis Upotreba Operator
23
Prioritet izvoenja operatora
= += -= *= /= %= &= ^= |= <<= >>= >>>= pridruivanje
?: uvjetni
|| logiki uvjet ILI
^ logiki EX ILI
&& logiki uvjet I
| logiki ILI
& logiki I
== != jednakost
< > <= >= instanceof relacijski
<< >> >>> posmaci
+ - aditivni
* / % multiplikativni
new (type)expr kreiranje/ pretvaranje
++expr --expr +expr -expr ~ ! unarni operatori
[] . (params) expr++ expr-- postfix operatori
24
25
Sintaksa Java
TM
jezika
Naredbe za kontrolu
toka programa
26
Uvod
Dok ne naie na neku od naredbi za kontrolu toka
programa, Java interpreter izvodi naredbe slijedno, onim
redom kojim su napisane u programu.
Naredbe za kontrolu toka koriste se za uvjetno izvoenje
grupe naredbi, za viestruko izvoenje grupe naredbi
zadani broj puta ili do ispunjenja nekog logikog uvjeta,
odnosno uvijek kada je potrebno promijeniti slijedni tok
izvoenja naredbi.
27
Naredbe za kontrolu toka programa dijelimo u etiri
kategorije:
break, continue, label:, return grananja
try-catch-finally, throw obrada iznimaka
if-else, switch-case odluke
while, do-while , for petlje
Naredba Kategorija
28
Naredbe while i do - while
while petlja koristi se za kontinuirano izvoenje bloka
naredbi dok je zadani logiki uvjet istinit.
while (izraz) {
naredbe;
}
Naredba while na poetku izraunava izraz, koji mora
vratiti logiku vrijednost. Ako izraz vrati true, izvodi se
pripadni blok naredbi. Ispitivanje izraza i izvoenja bloka
naredbi ponavlja se sve dok izraz ne vrati false.
Ukoliko logiki izraz na poetku vrati false, pripadni
blok naredbi nee se izvriti niti jednom.
29
do - while petlja slina je while petlji, ali se u ovom
sluaju logiki izraz ispituje na kraju.
do{
naredbe;
} while (izraz);
Pripadni blok naredbi uvijek e se izvriti barem jednom.
30
Naredba for
Naredba for omoguuje jednostavno izvoenje iteracija
uz promjenu vrijednosti indeksa u zadanom rasponu
brojeva.
for (inicijalizacija;terminiranje;inkrement) {
naredbe
}
Inicijalizacija sadri izraz za inicijalizaciju petlje,
koji se izvodi jednom kod ulaska u petlju.
Terminiranje je logiki izraz koji odreuje trenutak
zavretka petlje. Izraunava se na poetku svake
iteracije i ako vrati false petlja zavrava. Inkrement je
izraz koji se poziva na kraju svake iteracije. Svi
navedeni izrazi mogu se izostaviti, tako da npr. naredba
for ( ; ; ) daje beskonanu petlju.
31
Primjer:
for (int i = 0; i<100; i++) {
naredbe;
}
Gornja petlja izvriti e se 100 puta, a cjelobrojna
varijabla i poprimati e vrijednosti 0, 1, 2, ..., 98, 99.
Lokalna varijabla i deklarirana je u inicijalizacijskom
dijelu petlje. Tako deklarirana varijabla ima doseg od
mjesta deklaracije do kraja bloka pridruenog for
naredbi.
Izraz za terminiranje petlje usporeuje vrijednost
indeksa sa zadanom graninom vrijednosti, a dio za
inkrement uveava vrijednost indeksa na kraju svake
iteracije.
32
Naredba for/in
Naredba for/in namijenjena je iteriranju po
elementima polja ili zbirke (kolekcije).
for (deklaracija kontrolne varijable :
specifikacija zbirke/polja) {
naredbe
}
Deklaracija kontrolne varijable stvara
kontrolnu varijablu koja tokom izvoenja petlje redom
poprima vrijednosti iz zbirke/polja.
33
Primjer:
// polje s brojevima koje zelimo ispisati
int[] numbers = new int[] { 2, 3, 5, 7, 11,
13, 17, 19, 23, 29 };
for(int n : numbers)
System.out.println(n);
Gornja petlja izvriti e se 10 puta, a cjelobrojna
varijabla n poprimati e vrijednosti 2, 3, 5, . . ., 29.
Lokalna varijabla n deklarirana je u inicijalizacijskom
dijelu petlje. Tako deklarirana varijabla ima doseg od
mjesta deklaracije do kraja bloka pridruenog for
naredbi.
34
Naredba if / else
Naredba if omoguuje programu selektivno izvoenje
grupe naredbi.
if (izraz) {
naredbe;
}
Ako izraz vrati true, blok naredbi e se izvriti, a u
suprotnom se izvoenje programa nastavlja iza bloka.
Ponekad se zahtijeva grananje programa na nain da se
ukoliko je uvjet ispunjen izvede jedan blok naredbi, a
ako nije drugi blok.
if (izraz) {
naredbe1;
} else {
naredbe2;
}
35
Operator ?: je reducirana verzija if naredbe:
uvjet ? operand1 : operand2
Primjer: program treba ispitati da li je cijeli broj pozitivan
ili negativan i ispisati odgovarajuu poruku.
if (i >= 0) {
System.out.println("Broj " + i + " je pozitivan.");
} else {
System.out.println("Broj " + i + " je negativan.");
}
Uz koritenje ?: operatora:
System.out.println("Broj " + i + " je " +
(i>=0 ? "pozitivan." : "negativan."));
36
Naredba switch
Naredba switch omoguuje uvjetno izvravanje grupa
naredbi ovisno o vrijednosti kontrolne cjelobrojne varijable.
Sljedei primjer razvrstava dane u tjednu u radne dane i
dane vikenda:
switch (dan) {
case 1:
case 2:
case 3:
case 4:
case 5: System.out.println("Radni dan"); break;
case 6:
case 7: System.out.println("Vikend"); break;
default: System.out.println("Greka"); break;
}
37
Naredbe grananja
Java podrava tri naredbe grananja:
break
continue
return
Naredba break ima dva oblika: bez labele i sa labelom.
Bez labele terminira switch, for, while i do-while
naredbe, uz ogranienje da moe terminirati samo
unutarnju petlju. Ukoliko je potrebno iz neke od
unutarnjih petlji terminirati vanjsku petlju, potrebno je
koristiti labelu. U sljedeem primjeru u dvostrukoj for
petlji pretrauje se dvodimenzionalno polje od 10 redaka
i 5 stupaca. Kad je traeni podatak naen, potrebno je
prekinuti pretraivanje.
38
...
pretrazivanje:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
if (polje[i][j] == trazeniBroj) {
pronadjeno = true;
break pretrazivanje;
}
}
}
39
Naredba continue preskae trenutnu iteraciju petlje,
od mjesta gdje se naredba nalazi do kraja petlje. Ako
sadri labelu, preskae trenutnu iteraciju vanjske petlje
na koju se odnosi labela, kao i sve unutarnje petlje.
Naredba return koristi se za povratak iz metode. Ako
metoda vraa rezultat, izraz koji odreuje rezultat stavlja
se uz return naredbu:
return izraz;

You might also like