Logický datový typ (boolean): definice, hodnoty true/false a použití

Logický datový typ (boolean): vysvětlení true/false, historie v C++, příklady použití v podmínkách a smyčkách pro přehledné a bezpečné programování.

Autor: Leandro Alegsa

Logický datový typ (boolean) je základní datový typ, který může nabývat jediné ze dvou hodnot: true (pravda) nebo false (nepravda). Název pochází od anglického matematika George Boolea, který ve 19. století formuloval pravidla binární (Booleovy) algebry a logiky. V programování slouží booleovské hodnoty k reprezentaci výsledků porovnání a k řízení větvení a cyklů.

Krátká historie a standardizace

Datový typ bool byl formálně začleněn do standardu jazyka C++ ve verzi známé jako C++98 (ISO/IEC 14882:1998). Standardy jako ISO (International Organization for Standardization) a ANSI (American National Standards Institute) se podílejí na definování a udržování specifikací jazyků.

Hodnoty a zápis

  • true — logická pravda
  • false — logická nepravda

Ve většině jazyků jsou tato klíčová slova rezervovaná. Relace a logické výrazy (např. porovnání) vrací boolean. Boolovské výrazy tedy končí hodnotou true nebo false a používají se v podmínkách a smyčkách.

Operace a logické operátory

  • Negace: NOT (často !) — mění pravdu na nepravdu a naopak.
  • Konjunkce: AND (často &&) — výsledek je true pouze, pokud jsou oba operandy true.
  • Disjunkce: OR (často ||) — výsledek je true, pokud alespoň jeden operand je true.

Příklady pravdivostních kombinací (AND / OR):

  • AND: true && true → true; true && false → false; false && false → false
  • OR: true || true → true; true || false → true; false || false → false
  • NOT: !true → false; !false → true

Převody a tzv. "truthy"/"falsy" hodnoty

V některých jazycích (např. JavaScript, Python) existují koncepty "truthy" a "falsy" hodnot, kde různé typy (čísla, řetězce, kolekce) mohou být implicitně vyhodnoceny jako true nebo false (např. 0 nebo prázdné pole jsou falsy). V jiných jazycích (C, C++, Java) jsou převody přísnější: v C a C++ je každý nenulový integralní výraz považován za true, nula za false; v Javě se konverze mezi primitivními čísly a booleovským typem neprovádí automaticky.

Použití v programování

  • Řídicí struktury: if, else, switch (podmínky)
  • Smyčky: while, for (pokud podmínka vrací true, smyčka pokračuje)
  • Kontrola stavu: příznaky, indikátory chyby nebo dokončení
  • Vrácení výsledku testu funkcí: funkce může vracet true/false

Ukázky v několika jazycích

C++ (C++98 a novější):

bool isEven(int x) {     return x % 2 == 0; // porovnání vrací bool } 

Java:

boolean isEmpty(String s) {     return s == null || s.isEmpty(); } 

Python:

def is_positive(n):     return n > 0  # vrací True nebo False 

JavaScript:

const isNonEmpty = arr => Array.isArray(arr) && arr.length > 0; 

Běžné chyby a doporučení

  • Rozlišujte přiřazení a porovnání (např. v C/C++/Java: = vs ==). Chybným použitím můžete místo porovnání přiřadit hodnotu do proměnné.
  • Dávejte pozor na implicitní konverze (truthy/falsy) zejména v JavaScriptu nebo Pythonu — mohou vést k nečekanému chování.
  • V logických výrazech využívejte krátkodobé vyhodnocování (short-circuit): u && a || může druhý operand být nevyhodnocen, pokud to rozhodnutí není třeba; to lze využít např. k bezpečné kontrole hodnot před přístupem.
  • V C++ velikost typu bool není pevně stanovena standardem (obvykle 1 bajt), takže s ohledem na paměť a zarovnání zvažte použití bitových polí nebo jiných struktur pro velké množství boolean hodnot.

Logický datový typ je jednoduchý, ale klíčový stavební prvek programů — umožňuje vyjadřovat podmínky, řídit tok programu a reprezentovat stavy, které jsou buď pravdivé, nebo nepravdivé.  

Příklady

Příklad booleanu v psuedocode:

if (Boolean_Výraz) { Yes_Statement_1 ...  Yes_Statement_Last } else { No_Statement_1 ...  No_Statement_Last }


 Logické datové typy lze také používat s jinými logickými typy uvnitř podmíněných příkazů pomocí operátoru konjunkce. Například:

if (Boolean_Výraz1 a Boolean_Výraz2) { Yes_Statement_First ...  Yes_Statement_Last } else { No_Statement_First ...  No_Statement_Last }


 Lze jej použít také s operátorem disjunkce:

if (Boolean_Výraz1 nebo Boolean_Výraz2) { Yes_Statement_First ...  Yes_Statement_Last }
 

Otázky a odpovědi

Otázka: Co je to logický datový typ?


A: Logický datový typ je datový typ, který může nabývat jedné ze dvou hodnot: true nebo false.

Otázka: Kdo původně přidal do jazyka C++ datový typ Boolean?


Odpověď: Datový typ Boolean byl původně přidán do jazyka C++ výborem ISO/ANSI v roce 1998.

Otázka: Kdo je George Boole a proč jsou po něm pojmenovány logické výrazy?


Odpověď: George Boole byl anglický matematik, který formuloval pravidla pro matematickou logiku. Booleovy výrazy jsou po něm pojmenovány, protože se řídí stejnými principy logického uvažování, které vytvořil.

Otázka: K čemu slouží booleovské výrazy v programování?


Odpověď: Booleovy výrazy se používají v příkazech větvení a smyček a lze je použít s podmíněnými příkazy, aby se zajistilo, že určité příkazy proběhnou pouze tehdy, když je splněna správná podmínka.

Otázka: Může mít logický datový typ i jiné hodnoty než true a false?


Odpověď: Ne, logickému datovému typu lze přiřadit pouze jednu ze dvou hodnot: true nebo false.

Otázka: Jaký význam má, že logické výrazy mají pouze hodnotu true nebo false?


Odpověď: Význam logických výrazů, které mají pouze hodnotu true nebo false, spočívá v tom, že umožňují jasné a přesné logické uvažování a mohou být použity k rozhodování v příkazech s větvením a cykly.

Otázka: Kdy byl do jazyka C++ přidán logický datový typ?


Odpověď: Datový typ Boolean byl do jazyka C++ přidán výborem ISO/ANSI v roce 1998.


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3