Datový typ “bool”
C++ 11

image_printTisk

Cílem tohoto článku je osvětlit význam datového typu bool pro logickou hodnotu. Budete seznámeni s novými klíčovými slovy, vysvětlíme si rozdíl mezi operátorem porovnání a přiřazení a v závěru článku se podíváme na výstup logických hodnot na textovou konzoli.

V předchozích článcích jsme si představili klíčová slova int a double, která jsou datovými typy pro číselné hodnoty. Nyní přistoupíme k vysvětlení nového datového typu, reprezentovaného klíčovým slovem bool, který reprezentuje logickou hodnotu. Hodnoty logického typu bool jsou vyjádřeny opět pomocí klíčových slov, a to true false, jejichž význam je PRAVDA resp. NEPRAVDAMůžeme říci “jazykem matematiky”, že datový typ bool používá dvouhodnotovou logiku.

Jakákoliv hodnota v čitelném kódu by měla být výsledkem logického výrazu tvořeného aplikací jednoho či více relačních operátorů. Podrobněji se s nimi seznámíme v následující kapitole. V tomto článku si popíšeme pouze jeden relační operátor, a to operátor porovnání. Na rozdíl od matematiky, jeho zápis v programovacím jazyce C++ je tvořen dvěma znaky rovnosti, tedy “==”. Je důležité upozornit, že je třeba v C++ rozlišovat mezi operátorem přiřazení a operátorem porovnání. Jak již jste mohli zaznamenat, operátor přiřazení je syntakticky vyjádřen pouze jedním znakem rovnosti. Tento jev je zdrojem mnoha chyb, které se těžko hledají. Naštěstí dnešní překladače umí na takovou nechtěnou záměnu těchto dvou operátorů v určitých místech zdrojového kódu upozornit formou varování. Nyní ale již přistupme k příkladu aplikace operátoru porovnání.

int main() {
    int a = 3, b = 5, c = 3;
    bool v = false;

    v = a == c;   // Hodnota proměnné v je true
    v = a == b;   // Hodnota proměnné v je nyní false

    return 0;
}

V prvním případě hodnota proměnných a a c je totožná, proto proměnná v získá hodnotu true, ve druhém případě jsou hodnoty rozdílné, tedy výsledek je false.

Na závěr si ukážeme výstup logických hodnot na textovou konzoli. První si na příkladu demonstrujeme výstup v číselné podobě.

#include <iostream>
using namespace std;

int main() {
    cout << true << endl;    // Výstup bude číslo 1
    cout << false << endl;   // Výstup bude číslo 0

    return 0;
}

Z příkladu je patrné, že hodnota true konvertuje na číslo 1, hodnota false na číslo 0.

Pokud chceme výstup logických hodnot v textové podobě, je třeba nastavit speciální příznak pomocí objektu boolalpha. Viz následující příklad.

#include <iostream>
using namespace std;

int main() {
    cout << boolalpha;       // Nastavujeme na textové konzoli příznak pro výstup logických hodnot v textové podobě.
    cout << true << endl;    // Výstup bude řetězec "true"
    cout << false << endl;   // Výstup bude řetězec "false"

    return 0;
}

Stojí ještě za zmínku, že dokumentace ke knihovně STL uvádí, že pojmenování logických hodnot truefalse na výstupu textové konzole závisí také na nastavení lokalizace či jazyka, se kterým STL knihovna pracuje.

image_printTisk
Datový typ “bool”
C++ 11
Ohodnoťte tento článek

Související články

  • Konstanty Tento článek si klade za cíl vysvětlit význam a princip fungování konstant v jazyce C++. Seznámíme se s důvody jejich zavedení, uvedu zde dvě formy jejich zápisu a krátce záměrně odbočím […]
  • Proměnné V minulém článku jsme si řekli, že data programu jsou uchována v různých souvislých úsecích paměti. Abychom mohli v programu používat hodnotu uloženou v nějakém takovém úseku paměti, […]
  • Aritmetické operátory Tento článek by měl čtenáři nastínit používání základních aritmetických operátorů v jazyce C++. Je dobré upozornit, že C++ disponuje širší sadou operátorů, než se třeba pojednává ve […]
  • Číselné datové typy V této kapitole se objasníme pojem, co je to datový typ. Dále si ukážeme základní číselné datové typy, se kterými jazyk C++ operuje a předvedeme si různé varianty zápisu čísel, hlavně […]
  • Relační operátory Tento článek pojednává o porovnávacích, jinak nazývané také relačních,  operátorech v jazyce C++. Souhrnně se o nich zmíníme, ukážeme si opět rozdíl jejich zápisu od klasické matematiky a […]
  • Logické operátory Tématem tohoto článku jsou logické operátory, které slouží ke skládání jednoduchých výrazů, i jejich složitějších variant, s aplikovaným relačním operátorem do logických podmínek. Budeme […]