Výrazy sú základnými stavebnými kameňmi každého Java programu, zvyčajne vytvoreného na vytvorenie novej hodnoty, hoci niekedy výraz priradí hodnotu premennej. Výrazy sú vytvorené pomocou hodnôt, premenné, operátori a volania metód.
Rozdiel medzi príkazmi Java a výrazmi
Pokiaľ ide o syntax jazyka Java, výraz je podobný a doložka v anglickom jazyku ktorý zobrazuje konkrétny význam. Pri správnej interpunkcii to niekedy môže stáť samo od seba, aj keď môže byť súčasťou vety. Niektoré výrazy sa rovnajú tvrdeniam samým o sebe (na konci pridaním bodkočiarky), ale obyčajne tvoria časť tvrdenia.
Napríklad,
(a * 2)je výraz.
b + (a * 2);je vyhlásenie. Dalo by sa povedať, že výraz je klauzula a vyhlásenie je úplná veta, pretože predstavuje úplnú vykonateľnú jednotku.
Výrok však nemusí obsahovať viac výrazov. Jednoduchý výraz môžete zmeniť na príkaz pridaním bodkočiarky:
(a * 2);
Typy výrazov
Aj keď výraz často vedie k výsledku, nie vždy. V jazyku Java existujú tri typy výrazov:
- Tie, ktoré produkujú hodnotu, t. J. Výsledok
(1 + 1)
- Napríklad tie, ktoré priraďujú premennú
(v = 10)
- Tie, ktoré nemajú žiadny výsledok, ale môžu mať „vedľajší účinok“, pretože výraz môže obsahovať širokú škálu prvky, ako sú vyvolávanie metód alebo operátory prírastkov, ktoré modifikujú stav (t. j. pamäť) a program.
Príklady výrazov
Tu je niekoľko príkladov rôznych typov výrazov.
Výrazy, ktoré prinášajú hodnotu
Výrazy, ktoré produkujú hodnotu, používajú širokú škálu aritmetických, porovnávacích alebo podmienených operátorov Java. Napríklad aritmetické operátory zahŕňajú +, *, /, , ++ a%. niektorí podmienečných operátorov sú?, || a operátory porovnávania sú . Pozri Špecifikácia Java pre kompletný zoznam.
Tieto výrazy prinášajú hodnotu:
3/2
5% 3
pi + (10 * 2)
Zaznamenajte si zátvorky v poslednom výraze. Toto usmerňuje Javu, aby najprv vypočítala hodnotu výrazu v zátvorkách (rovnako ako aritmetika, ktorú ste sa naučili v škole), potom dokončila zvyšok výpočtu.
Výrazy, ktoré priraďujú premennú
Tento program tu obsahuje veľa výrazov (zobrazené tučnou kurzívou), z ktorých každý priraďuje hodnotu.
int sekúndInDay = 0;
int
daysInWeek = 7;
int
hoursInDay = 24;
int
minútyInHour = 60;
int
sekúndInMinute = 60;
boolean
countWeek = true;
secondInDay = sekúndInMinute * minutesInHour * hoursInDay; //7
System.out.println (
„Počet sekúnd za deň je:“ + sekundyInDay);
ak (
countWeek == true)
{
System.out.println (
„Počet sekúnd v týždni je:“ + sekundyInDay * daysInWeek);
}
Výrazy v prvých šiestich riadkoch vyššie uvedeného kódu používajú operátor priradenia na priradenie hodnoty vpravo k premennej vľavo.
Riadok označený // 7 je výraz, ktorý môže byť samostatný ako príkaz. Ukazuje tiež, že výrazy je možné získať pomocou viacerých operátorov. Konečná hodnota premennej secondInDay je vyvrcholením postupného vyhodnotenia každého výrazu (t.j. sekúndInMinute * minutesInHour = 3600, potom 3600 * hodínInDay = 86400).
Výrazy bez výsledku
Zatiaľ čo niektoré výrazy neprinášajú žiadny výsledok, môžu mať vedľajší účinok, ktorý nastane, keď výraz zmení hodnotu ktoréhokoľvek z jeho výrazov operandmi.
Napríklad sa predpokladá, že niektorí operátori majú vždy vedľajší účinok, ako sú operátori priradenia, zvýšenia a zníženia. Zváž toto:
int produkt = a * b;
Jedinou premennou zmenenou v tomto výraze je produkt; a b sa nezmenia. Toto sa nazýva vedľajší účinok.