Operátory a příkazy pro řízení běhu programu jsou jedny ze základních stavebních kamenů každého programovacího jazyka. Pojďte se podívat na kompletní přehled operátorů a řídících struktur Javy.

Operátory

Základní operátory Javy jsou velmi podobné operátorům jiných programovacích jazyků (např. C nebo PHP). V Javě existují unární, binární a ternární operátory. Asociativita určuje, v jakém pořadí je řetězec operátorů vyhodnocen, pokud není závorkami určeno jinak. Operátory s vyšší prioritou budou vyhodnoceny dříve (např. násobení má přednost před sčítáním).

a+b+c+d znamená ((a+b)+c)+d
a=b=c=d znamená a=(b=(c=d))

Následující tabulka obsahuje kompletní seznam operátorů seřazených podle priority.

priorita operátor počet operandů typ operandů typ výsledku asoc. popis
1 ++ 1 aritmetický aritmetický P pre/post inkrementace
1 1 aritmetický aritmetický P pre/post dekrementace
+,- 1 aritmetický aritmetický P plus, mínus
1 ~ 1 aritmetický aritmetický P bitový doplněk
1 ! 1 boolean boolean P logická negace
1 (typ) 1 libovolný typ P přetypování
2 *, /, % 2 aritmetický aritmetický L násobení, dělení, zbytek po dělení
3 +, – 2 aritmetický aritmetický L sčítání, odčítání
3 + 2 String String L spojení řetězců
4 << 2 celočíselný celočíselný L posun vlevo
4 >> 2 celočíselný celočíselný L posun vpravo s rozšířením znaménka
4 >>> 2 celočíselný celočíselný L posun vpravo s rozšířením nuly
5 <, <= 2 aritmetický boolean L menší, menší nebo rovno
5 >, >= 2 aritmetický boolean L vetší, vetší nebo rovno
5 instance of 2 objekt, typ boolean L je objekt daného typu
6 == 2 cokoli boolean L rovno
6 != 2 cokoli boolean L není rovno
7 & 2 celočíselný celočíselný L bitové AND
7 & 2 boolean boolean L logické AND
8 ^ 2 celočíselný celočíselný L bitové XOR
8 ^ 2 boolean boolean L logické XOR
9 | 2 celočíselný celočíselný L bitové OR
9 | 2 boolean boolean L logické OR
10 && 2 boolean boolean L podmínkové AND
11 || 2 boolean boolean L podmínkové OR
12 ? : 3 boolean, cokoli, cokoli cokoli P podmínkový operátor
13 = 2 cokoli cokoli P přiřazení
13 +=, -=, *=, /=, <<=, >>=, >>>=, &=, ^=, |= 2 cokoli cokoli P přiřazení s operací

Operátor instanceof zjišťuje, zda je levý operand (objekt) instancí třídy v pravém operandu, popř. zda podporuje dané rozhraní.

Rozdíl mezi boolovským operátorem & a && (| a ||) je ten, že operátory & a | vyhodnotí obě strany výrazu a provedou logickou operaci, zatímco operátory && a ||, pokud je výsledek po vyhodnocení levého operandu jasný, pravý operátor nevyhodnocují.

Operátor += je zkratkou za rozšířený zápis = ..+, podobně jako ostatní operátory z této skupiny. Následující dva řádky jsou ekvivalentní:

x += 1;
x = x+1;

Operátor ? : slouží kpodmíněnému přiřazení hodnoty.

a>10 ? a-10 : a

Pokud hodnota a je větší než 10, výraz nabývá hodnoty a-10, jinak nabývá hodnoty a. Následující výraz např. vrátí menší zčísel a, b:

a<b?a:b

Výraz soperátorem = vrací přiřazenou hodnotu, proto je možné psát:

a = b = c = d = 0;

Příkazy pro řízení běhu

if, switch, for, while, do-while, break, continue, return, try, catch, finally, throw

Řídící příkazy v Javě jsou velmi podobné ostatním programovacím jazykům, proto jen stručně:

break a continue se mohou odkazovat na návěstí
switch může mít vpodmínkovém výrazu typy byte, char, short, long

for (int i = 0; i < arrayOfInts.length; i++) {
  System.out.print(arrayOfInts[i] + " ");
  }
if (x >= 100) {
  popis = 'velké';
  } else {
  popis = 'malé';
  }
switch (den) {
  case 1: System.out.println("pondělí"); break;
  case 2: System.out.println("úterý"); break;
  case 3: System.out.println("středa"); break;
  case 4: System.out.println("čtvrtek"); break;
  case 5: System.out.println("pátek"); break;
  case 6: System.out.println("sobota"); break;
  case 7: System.out.println("neděle"); break;
  }
vnejsi: for (int i=0; i;<10; i++) {
 while (a[i]>0) {
    zpracuj(a[i], i);
    if (a[i]==0) continue;
    if (a[i]<0) continue vnejsi;
    }
  }

Příkazy try, catch, finally, throw slouží pro řízení výjimek a budou probrány v samostatném díle.

V příštím díle se již dostaneme k samotnému srdci Javy – k objektům.

Žádný příspěvek v diskuzi

Odpovědět