Rozhodovací struktury

Přehled informací

Rozhodovací struktura if .. else

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.

Syntaxe příkazu

  if (podmínka)
  {
    [příkazy]
  }
  [else
   {
     [else_příkazy]
   }
  ]

Argumenty příkazu

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.

Příklad použití struktury if .. else

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átory

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ů.

Syntaxe příkazu

    (proměnná) = (booleovský výraz) ? (operand_true) : (operand_false);

Argumenty příkazu

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.

Příklad použití podmíněného ternárního výrazu

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;

Podmíněný příkaz switch

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++.

Syntaxe příkazu

  switch (testovaný_výraz)
  {
   [case výraz :
     [příkazy-n;]
     [break;]
   ]
   [default :
     [default_prikazy;]
     [break;]
   ] 
  }

Argumenty příkazu

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:

  • číslo (př. 5)
  • znaky (př. 'h')
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.

Příklad použití podmíněného příkazu switch

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.