![]()
Základní rozhodovací strukturou v Javě je rozhodovací struktura If .. else. Tato struktura zajišťuje podmínečné provedení skupiny příkazů závisející na hodnotě výrazu.
if (podmínka)
{
[příkazy]
}
[else
{
[else_příkazy]
}
]
| podmínka | ||
|
Povinná. Může se skládat z číselného nebo řetězcového výrazu, vyhodnotitelného jako True nebo False. |
||
| příkazy | ||
|
Povinné - jeden nebo více příkazů. Vykonají se, když je podmínka vyhodnocena jako True. |
||
| else_příkazy | ||
| Volitelné. Jeden nebo více příkazů, které se provedou v případě, kdy podmínka podmínka není vyhodnocena jako True. | ||
![]()
Použití podmíněného výrazu je velice jednoduché, předpokládejme například, že potřebujete rozdělit uživatele do tří skupin podle věku. V první skupině budou uživatelé mladší 18 let, v druhé skupině uživatelé starší než 18 let. Uživatelé, kterým je právě 18 let budou mít zvláštní kategorii. Podmíněný výraz bude složený následujícího tvaru:
if (vek < 18)
vekova_kategorie = "dite";
else if (vek > 18)
vekova_kategorie = "dospely";
else
vekova_kategorie = "osmnactilety";
Podmíněný ternární operátor umožňuje jednoduchým způsobem otestovat booleovský výraz a podle výsledku uskuteční jeden ze dvou příkazů.
(proměnná) = (booleovský výraz) ? (operand_true) : (operand_false);
| booleovský výraz | ||
| Testovaný výraz, může nabývat hodnot true nebo false. | ||
| operand_true | ||
|
Operand přiřazený do proměnné proměnná v případě vyhodnocení výrazu booleovský výraz jako true. |
||
| operand_false | ||
| Operand přiřazený do proměnné proměnná v případě vyhodnocení výrazu booleovský výraz jako false. | ||
![]()
V následujícím příkladě použijeme podmíněný ternární výraz k vytvoření negace výrazu. Počáteční hodnota v proměnné logicka je true. V ternárním výrazu je testovaný výraz vyhodnocen jako true. Proto ternární výraz vrátí první hodnotu, která se rovná false. Vrácená hodnota je poté přiřazena do proměnné logicka.
boolean logicka = true;
logicka = (logicka) ? false : true;
Příkaz switch umožňuje programu Java otestovat jestli jedna proměnná nabývá více různých hodnot. Formát příkazu switch je totožný s formátem téhož příkazu v C/C++.
switch (testovaný_výraz)
{
[case výraz :
[příkazy-n;]
[break;]
]
[default :
[default_prikazy;]
[break;]
]
}
| testovaný_výraz | ||
| Povinné. Může se skládat z libovolného číselného nebo řetězcového výrazu. | ||
| výraz | ||
|
Povinné, vyskytne-li se klauzule case. výraz představuje hodnoty, s kterými se porovnává testovaný_výraz. Formát položky výraz je následujícím:
|
||
| příkazy-n | ||
| Volitelné. Jeden nebo více příkazů vykonaných, jestliže testovaný_výraz odpovídá libovolné části ze výraz. Skupina příkazů je zakončena příkazem break; | ||
| default | ||
| Volitelné. Jeden nebo více příkazů vykonaných, jestliže testovaný_výraz neodpovídá žádné klauzuli z case. | ||
![]()
V následujícím příkladě určí příkaz switch hodnotu cena_vozu v závislosti na hodnote stáří vozu. Je-li stáří vozu rovné 2 nebo 3 rokům bude cena vozu stejná. Je-li auto starší než 5 let je cena_vozu rovna 1000.
switch (stari_vozu)
{
case 1 :
cena_vozu = 300000;
break;
case 2 :
case 3 :
cena_vozu = 200000;
break;
case 4 :
cena_vozu = 100000;
break;
case 5 :
cena_vozu = 10000;
break;
default :
cena_vozu = 1000;
break;
}
V příkladě si zejména všimněte použití příkazu break. U hodnoty stari_vozu = 2 není příkaz break uveden, pokud bude hodnota vybrána, budou se provádět příkazy až do doby než narazí program na příkaz break. To znamená přiřadí se hodnota cena_vozu = 200000.
![]()