Větvení programu - if a switch

Příkaz if

Jedná se o jeden z nejvíce užívaných příkazů. Java jej umožňuje použít jak v neúplné podmínce, tak v úplné podmínce.

Neúplná podmínka

if (logická_výraz)
    příkaz1;

Jak to funguje?

Pokud je logický_výraz splněn provede se příkaz.

Úplná podmínka

if (logická_výraz)
    příkaz1;
   else
    příkaz2;
Jak to funguje?

Pokud je logický_výraz splněn provede se příkaz1. Pokud splněn není provede se příkaz2.

Pokud je potřeba použití více příkazů, vkládají se do bloku odděleného složenými závorkami.

if (logický_výraz) {
    příkaz1a;
    příkaz1b;
    příkaz1c;
   } else {
    příkaz2a;
    příkaz2b;
   }

Příkazy if lze do sebe vnořovat. V tomto případě se else vztahuje vždy k nejbližšímu if. Pokud potřebujeme else spárovat k jinému if, je nutno použít složené závorky.

if (logická_podmínka1) {
    if (logická_podmínka2)
       příkaz1;
    příkaz2;
    } else {
    příkaz3a;
    příkaz3b;
   }

Příkaz switch

Jedná se o přepínač neboli příkaz pro vícenásobné větvení programu.

Syntaxe switch je následující:

switch (výraz) {
  case hodnota1 : příkaz/y_pro_hodnotu1;
                  break;
  case hodnota2 : příkaz/y_pro_hodnotu2;
                  break;
  case hodnota3 : příkaz/y pro hodnotu3
                  break;
  default : příkaz/y_pro_defaultHodnotu;
            break;
}
Jak to funguje?

Výraz je rozdělen na jednotlivé hodnoty a pro ně se vykonávají příslušné příkazy. Hodnota default jsou všechny ostatní hodnoty, které může výraz nabývat a nejsou uvedeny v case. Příkaz break zajistí, že se vykonají příkazy pouze pro danou hodnotu.

Následující kód :

int vetev;
...
switch (vetev){
  case 1 : System.out.println("Hodnota promenne vetev je jedna");
           break;
  case 2 : System.out.println("Hodnota promenne vetev je dve");
           break;
  case 3 : System.out.println("Hodnota promenne vetev je tri");
           break;
  default : System.out.println("Hodnota promenne vetev vice nez tri");
            break;
}
vypíše slovně hodnotu proměnné vetev - buď to 1, 2,3 nebo vice nez 3.

Vlastnosti switch:

  • Výraz může být pouze typu char, byte, short, int, dále enum a String.
  • Počet větví není omezen.
  • V každé větvi může být více příkazů, které není nutné uzavírat do složených závorek.
  • Pokud není větev ukončena příkazem break je dále zpracovávána další větev v pořadí a to až do dalšího break nebo do ukončení switch.
courses/b0b36pjv/tutorials/02/vetveni_-_if_a_switch.txt · Last modified: 2024/03/01 09:30 by balikm