Výrazy jsou základní stavební kameny jakéhokoli Java programu, obvykle vytvořené pro vytvoření nové hodnoty, i když někdy výraz přiřazuje hodnotu proměnné. Výrazy jsou vytvářeny pomocí hodnot, proměnné, operátory a volání metod.
Rozdíl mezi příkazy Java a výrazy
Z hlediska syntaxe jazyka Java je výraz podobný a doložka v anglickém jazyce který zobrazuje konkrétní význam. Se správnou interpunkcí může někdy stát samostatně, i když může být také součástí věty. Některé výrazy se shodují s výroky samy o sobě (přidáním středníku na konec), ale častěji tvoří část prohlášení.
Například,
(a * 2)je výraz.
b + (a * 2);je prohlášení. Dalo by se říci, že výraz je klauzula a příkaz je úplná věta, protože tvoří úplnou vykonávací jednotku.
Výrok však nemusí zahrnovat více výrazů. Jednoduchý výraz můžete změnit na příkaz přidáním středníku:
(a * 2);
Druhy výrazů
Ačkoli výraz často vede k výsledku, ne vždy. V Javě existují tři typy výrazů:
- Ty, které produkují hodnotu, tj. Výsledek
(1 + 1)
- Například ty, které přiřazují proměnnou
(v = 10)
- Ty, které nemají žádný výsledek, ale mohou mít „vedlejší účinek“, protože výraz může zahrnovat širokou škálu prvky jako vyvolání metody nebo operátory přírůstku, které mění stav (tj. paměť) a program.
Příklady výrazů
Zde je několik příkladů různých typů výrazů.
Výrazy, které vytvářejí hodnotu
Výrazy, které vytvářejí hodnotu, používají širokou škálu aritmetických, srovnávacích nebo podmíněných operátorů Java. Například aritmetické operátory zahrnují +, *, /, , ++ a%. Nějaký podmíněné operátory jsou?, || a operátory porovnání jsou . Viz Java specifikace pro kompletní seznam.
Tyto výrazy vytvářejí hodnotu:
3/2
5% 3
pi + (10 * 2)
Poznamenejte si závorky v posledním výrazu. Toto směruje Javu, aby nejprve vypočítala hodnotu výrazu v závorkách (stejně jako aritmetika, kterou jste se naučili ve škole), a poté dokončila zbytek výpočtu.
Výrazy, které přiřazují proměnnou
Tento program obsahuje spoustu výrazů (zobrazených tučnou kurzívou), z nichž každý přiřadí hodnotu.
int sekundInDay = 0;
int
daysInWeek = 7;
int
hoursInDay = 24;
int
minutInHour = 60;
int
sekundInMinute = 60;
boolean
countWeek = true;
secondInDay = sekundInMinute * minutInHour * hoursInDay; //7
System.out.println (
"Počet sekund za den je:" + sekundyInDay);
pokud (
countWeek == true)
{
System.out.println (
"Počet sekund v týdnu je:" + sekundyInDay * daysInWeek);
}
Výrazy v prvních šesti řádcích výše uvedeného kódu používají operátor přiřazení k přiřazení hodnoty vpravo proměnné vlevo.
Řádek označený // 7 je výraz, který může stát samostatně jako příkaz. Ukazuje také, že výrazy lze vytvořit pomocí více než jednoho operátora. Konečná hodnota proměnné sekundInDay je vyvrcholením postupného vyhodnocování každého výrazu (tj. SekundyInMinute * minutInHour = 3600, poté 3600 * hodinInDay = 86400).
Výrazy bez výsledku
Zatímco některé výrazy nevytvářejí žádný výsledek, mohou mít vedlejší účinek, ke kterému dochází, když výraz změní hodnotu kterékoli z jeho výrazů operandy.
Například se u některých operátorů předpokládá, že vždy vyvolávají vedlejší účinek, jako jsou operátory přiřazování, zvyšování a snižování. Zvaž toto:
int produkt = a * b;
Jedinou proměnnou změnou v tomto výrazu je produkt; A a b se nezmění. Tomu se říká vedlejší účinek.