2. Úplné větvení

Jednoduché větvení se provádí příkazem if. Dejte si pozor, ať v logických výrazech nepoužíváte operátor přiřazení = namísto správného operátoru, který testuje rovnost, tj. == . Další důležitým pravidlem je, že výraz za příkaz if musí být uzavřen do závorek!

Úplné větvení má obě větve – True, tj. logický výraz (logická podmínka) je splněn a i větev False, tj. podmínka není splněna. Následující značka definuje, jak jsme ve vývojovém diagramu zaznamenali blok rozhodování – viz Obrázek 1.

Rozhodování úplné větvení

Obrázek 1: Blok rozhodování - úplné větvení

Obecná syntaxe úplného větvení v C# je:

if (logickýVýraz)
	příkaz1;
else
	příkaz2;                

kde:

  • logickýVýraz - představuje podmínku rozhodování 
  • příkaz1 - příkaz (nebo složený příkaz, tj. blok příkazů), který je proveden, je-li logický výraz vyhodnocen jako true
  • else - větev, která je vykonána, pokud logický výraz je vyhodnocen jako false
  • příkaz2 - příkaz, nebo složený příkaz, který je proveden ve větvi else, tj. je-li logický výraz vyhodnocen jako false


V jazyce C# musíme přiřadit hodnotu logické proměnné dříve, než použijeme její obsah! Pokud se pokusíme přistoupit k obsahu proměnné dříve, která není naplněna, nebudeme moci program zkompilovat.


Ilustrativní příklad UplneVetveni

Algoritmus UplneVetveni


Při deklaraci proměnných využijeme úspornější variantu, kdy jednotlivé proměnné stejného datového typu oddělíme čárkou, tím ušetříme místo ve vývojovém diagramu (díky redukci dalších značek deklarace jednotlivých proměnných). Rozhodovací blok obsahuje testovanou podmínku. Pokud je podmínka splněna (tj. větev True), je vykonán přiřazovací příkaz, který proměnné logického typu přiřadí hodnotu true (pravda). Pokud podmínka splněna není, je vykonána druhá větev False, ve které přiřadíme logické proměnné boolPromenna hodnotu false. 


Program UplneVetveni
  • Popis: Zdrojový kód úplného větvení
  • Zadání: Vymyslete, jak byste v C# naprogramovali v hlavní metodě Main algoritmus UplneVetveni jako konzolovou aplikaci
  • Řešení: Bude postupně probráno v následujícím textu


V redukovaném zdrojovém kódu (provedli jsme deklaraci lokálních proměnných včetně inicializace) jsou deklarovány dvě celočíselné proměnné, které jsou inicializovány (datový typ int) - viz Kód 1. Třetí deklarovanou proměnnou s názvem boolPromenna je logická proměnná (datový typ bool), která může nabývat hodnoty true nebo false. Ve čtvrtém řádku kódu dochází k testování podmínky, tj. zda platí tvrzení, že hodnota uložená v proměnné x je menší než hodnota uložená v proměnné y. Pokud je tato podmínka splněna přiřadíme logická proměnné boolPromenna hodnotu true. Pokud podmínka není splněna, logické proměnné přiřadíme hodnotu false.

static void Main(string[] args)
{
    //Deklarace celočíselné proměnné včetně inicializace
    int x = 2;
    //Deklarace celočíselné proměnné včetně inicializace
    int y = 3;
    //Deklarace logické proměnné
    bool boolPromenna;
    //Rozhodovací podmínka
    if (x < y)
        //Pokud podmínka je splněna -> přiřazení hodnoty true do logické proměnné
        boolPromenna = true;
    else
        //Pokud podmínka není splněna -> přiřazení hodnoty false
        boolPromenna = false;
}

Kód 1: Příklad úplného větvení