Izrazi su bitni građevni blokovi bilo kojeg Java programa, obično stvoreni za dobivanje nove vrijednosti, mada ponekad izraz dodjeljuje vrijednost varijabli. Izrazi se grade pomoću vrijednosti, varijable, operateri i pozivi metoda.
Razlika između Java izjava i izraza
U smislu sintakse Java jezika, izraz je srodan a klauzula na engleskom jeziku što prikazuje specifično značenje. Prava interpunkcija ponekad može stajati samostalno, iako može biti i dio rečenice. Neki izrazi izjednačavaju se s tvrdnjama (dodavanjem zarezom na kraju), ali češće sadrže dio iskaza.
Na primjer,
(a * 2)je izraz.
b + (a * 2);je izjava. Mogli biste reći da je izraz klauzula, a izjava potpuna rečenica, jer čini cjelokupnu izvršnu jedinicu.
Izjava, međutim, ne mora sadržavati više izraza. Jednostavnim izrazom možete pretvoriti u izjavu dodavanjem zarezu:
(a * 2);
Vrste izraza
Iako izraz često daje rezultat, to nije uvijek. U Javi postoje tri vrste izraza:
- Oni koji proizvode vrijednost, tj. Rezultat
(1 + 1)
- Na primjer, oni koji dodjeljuju varijablu
(v = 10)
- Oni koji nemaju rezultata, ali mogu imati "nuspojavu", jer izraz može obuhvaćati širok raspon elemente kao što su pozivi metoda ili operateri povećanja koji mijenjaju stanje (tj. memoriju) a program.
Primjeri izraza
Evo nekoliko primjera različitih vrsta izraza.
Izrazi koji proizvode vrijednost
Izrazi koji proizvode vrijednost koriste širok raspon Java aritmetičkih, usporednih ili uvjetnih operatora. Na primjer, aritmetički operatori uključuju +, *, /, , ++ i%. Neki uvjetni operatori su?, ||, a operateri za usporedbu su . Vidi Java specifikacija za cjelovit popis.
Ovi izrazi proizvode vrijednost:
3/2
5% 3
pi + (10 * 2)
Imajte na umu zagrade u posljednjem izrazu. Ovo usmjerava Javu da najprije izračuna vrijednost izraza u zagradama (baš kao i aritmetika koju ste naučili u školi), a zatim završi ostatak izračuna.
Izrazi koji dodjeljuju varijablu
Ovaj program ovdje sadrži mnoštvo izraza (prikazanih podebljanim kurzivom) koji svaki dodjeljuju vrijednost.
int sekundiDan = 0;
int
danaInWeek = 7;
int
satiInDay = 24;
int
minutaInHour = 60;
int
sekundiMinut = 60;
boolean
CalcuWeek = istina;
sekundiInDay = sekundiIninute * minuteInHour * satiInDay; //7
System.out.println (
"Broj sekundi u danu je:" + sekundiDnevni dan);
ako (
CalcuWeek == istina)
{
System.out.println (
"Broj sekundi u tjednu je:" + sekundiInDan * danaInWeek);
}
Izrazi u prvih šest redaka koda gore, svi koriste operatora dodjele za dodjeljivanje vrijednosti na desnoj strani varijabli na lijevoj strani.
Linija označena s // 7 izraz je koji može samostalno stajati kao izjava. Također pokazuje da se izrazi mogu izgraditi korištenjem više operatora. Konačna vrijednost varijabilne sekundeInDay je vrhunac procjene svakog izraza zauzvrat (tj. SekundiInMinute * minuteInHour = 3600, nakon čega slijedi 3600 * satiInDay = 86400).
Izrazi bez rezultata
Iako neki izrazi ne daju rezultat, mogu imati nuspojavu koja nastaje kada izraz promijeni vrijednost bilo kojeg njegovog izraza operanda.
Na primjer, smatra se da neki operatori uvijek proizvode nuspojavu, poput operatora dodjele, prirasta i smanjenja. Razmislite o ovom:
int proizvod = a * b;
Jedina varijabla promijenjena u ovom izrazu je proizvod; i b se ne mijenjaju. To se naziva nuspojava.