Hodnotové typy
2. Hodnotové typy
2.5. Logický datový typ
Hodnoty tohoto datového typu, též nazývaný booleanovský typ (datový typ bool) vyjadřují, zda nějaké tvrzení platí (hodnota true) nebo neplatí (hodnota false). Princip operací s logickými proměnnými byl již popsán dříve v knize Rozhodování.
Ilustrativní příklad Logika
Program Logika
- Popis: Příklad deklarace logické proměnné typu boolean s inicializací a použitím logických a relačních operací
- Zadání: Deklarujte v hlavní metodě Main dvě proměnné s názvem logickaPromenna a logickaPromenna2 obojí datového typu bool a inicializujte první proměnnou hodnotou true a druhou hodnotou false. U proměnných proveďte operaci logického součinu, součtu, negaci (pouze první proměnné), rovnosti a porovnání (využijte metodu metodu CompareTo a ternární operátor pro určení zda je výsledná číselná hodnota > 0 pak vypište true, jinak false). Vypište hodnoty obou proměnných a také výslednou hodnotu jednotlivých operací
- Řešení: Bude postupně probráno v následujícím textu
Ve zdrojovém kódu jsme nejprve deklarovali obě datové proměnné a následně jim přiřadily hodnoty - první true a druhé false.
Následně jsme nechali hodnoty obou proměnných vypsat. První operací je logický součin pomocí logického operátoru &&. Pokud si představíme true jako celočíselnou hodnotu 1 a false jako 0, pak pokud tyto hodnoty vynásobíme dostáváme 0, tedy false. Podobně je to u druhé operace logického součtu, kde výsledek je 1, tedy true. V dalším příkazu jsme využili operátor negace !, pro negování hodnoty uložené v první proměnné, tzn. z hodnoty true jsme udělali opačnou hodnotu, tedy false. Pro porovnání rovnosti obou logických proměnných jsme využili operátor ==. Pro poslední operaci porovnání jsme využili metodu CompareTo vyvolanou pomocí tečkové notace u první logické proměnné. Metoda CompareTo navrací jako výsledek porovnání celé číslo. Pokud jsme porovnávali první logickou proměnnou vůči druhé, mohli jsme obdržet tři možné stavy (v závislosti na hodnotách proměnných):
- > 0 ... hodnota v první proměnné je větší než ve druhé
- = 0 ... hodnota v první proměnné je stejná jako ve druhé
- < 0 ... hodnota v první proměnné je menší než ve druhé
Pro zachování výpisu hodnot true, nebo false jsme použili ternární operátor, který nahradil příkaz if. Pokud je metodou CompareTo navráceno číslo větší než 0, vypíše se hodnota true, v opačném případě hodnota false.
static void Main(string[] args) { //Deklarace logických proměnných včetně inicializace bool logickaPromenna = true; bool logickaPromenna2 = false; //Výpis hodnoty první logické proměnné Console.WriteLine("Hodnota první proměnné: {0}", logickaPromenna); //Výpis hodnoty druhé logické proměnné Console.WriteLine("Hodnota druhé proměnné: {0}", logickaPromenna2); //Výpis výsledné hodnoty logického součinu dvou logických proměnných Console.WriteLine("Logický součin: {0}", logickaPromenna && logickaPromenna2); //Výpis výsledné hodnoty logického součtu dvou logických proměnných Console.WriteLine("Logický součet: {0}", logickaPromenna || logickaPromenna2); //Výpis výsledné hodnoty po negaci hodnoty logické proměnné Console.WriteLine("Negace první proměnné: {0}", !logickaPromenna); //Výpis výsledné hodnoty rovnosti dvou logických proměnných Console.WriteLine("Rovnost: {0}", logickaPromenna == logickaPromenna2); //Výpis výsledné hodnoty porovnání hodnot dvou logických proměnných s použitím ternárního operátoru Console.WriteLine("Porovnání: {0}", logickaPromenna.CompareTo(logickaPromenna2) > 0 ? true : false); //Čekání na stisk klávesy -> ukončení programu Console.ReadKey(); }
Kód 1: Příklad deklarace logických proměnných typu boolean s inicializací a použitím logických a relačních operací
Na následujícím výstupu vidíme výsledné hodnoty provedených operací na logických proměnných - viz Výstup programu - Kód 1.
Hodnota první proměnné: True
Hodnota druhé proměnné: False
Logický součin: False
Logický součet: True
Negace první proměnné: False
Rovnost: False
Porovnání: True
Výstup programu - Kód 1: Ukázka výsledků provedených logických a relačních operací