Boolean
Boolean je v informatice logický datový typ reprezentovaný jednou ze dvou hodnot – true (pravda, 1) nebo false (nepravda, 0). Pro hodnoty typu boolean jsou definovány všechny relační operace (=, ≠, >, <, ≥, ≤). Z toho, že v tomto typu platí uspořádání false < true vyplývá, že i nad tímto typem jsou definovány standardní funkce succ(x), pred(x) a ord(x). Hodnota ord(false) = 0, hodnota ord(true) = 1. A dále jsou zde definovány binární operace konjunkce, disjunkce a unární operace negace. Boolean je pojmenován po Georgeovi Booleovi, objeviteli základů moderní aritmetiky.
Logická tabulka
X | Y | X and Y | X or Y | not X |
---|---|---|---|---|
false | false | false | false | true |
false | true | false | true | true |
true | false | false | true | false |
true | true | true | true | false |
- and – logický součin (konjunkce)
- or – logický součet (disjunkce)
- not – negace
ALGOL
Jeden z prvních programovacích jazyků ALGOL 60, definoval datový typ Boolean
a jeho související operace. Algol 68 zkrátil název na bool
.
Operace s Boolean
operandy:
- op ∨ = (bool a, b) bool: ( a | true | b );
- op ∧ = (bool a, b) bool: ( a | b | false );
- op ¬ = (bool a) bool: ( a | false | true );
- op = = (bool a, b) bool: ( a∧b ) ∨ ( ¬b∧¬a );
- op ≠ = (bool a, b) bool: ¬(a=b);
- op abs = (bool a) int: ( a | 1 | 0 );
Pascal
Boolean
je základní datový typ využívaný v Pascalu. Následuje příklad jeho definice a použití:
{ deklarace v unitu system nebo standard }
Type
Boolean = (False,True);
{ využití }
var
Hodnota: Boolean;
{ ... }
Hodnota := True;
Hodnota := False;
if Hodnota then
begin
{ ... }
end;
Některé překladače jako Delphi mají rozšířený typ boolean (bytebool, wordbool, longbool).
C#
V C# jsou booleovské proměnné identifikovány pomocí vyhrazeného slova bool
, což je alias pro předdefinovný typ System.Boolean
. Tento typ zabírá jeden byte. Nestandardní konverze existují mezi bool
a dalšími typy.
Kód na výstupu by mohl vypadat takto:
bool myBool = (i == 5);
System.Console.WriteLine(myBool ? "I = 5" : "I != 5");
Fortran
V programovacím jazyce Fortran bylo v 50. letech zavedeno klíčové slovo LOGICAL
a související slova .NOT.
, .AND.
, .OR.
.
Objective-C
Objective-C nabízí typ BOOL
, a hodnoty YES
a NO
. Vzhledem k tomu, že Objective-C je nadstavbou C, také zde platí jazyková sémantika pro typ boolean.
OCaml
OCaml má typ bool
, který má hodnoty true
a false
.
# 1 = 1 ;;
- : bool = true
PHP
PHP nemá striktně typové proměnné, zato definuje hodnoty true a false. Některé funkce, které typicky vracejí celá čísla nebo řetězce, vracejí false v případě neúspěchu. Spolu s typovým porovnáváním může být odlišeno od hodnoty 0, která v některých případech může být výslednou hodnotou v případě úspěchu (jako například u funkce strpos()
).
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// Všimněte si použití ===. Obyčejné == by nefungovalo podle předpokladu,
// protože 'a' je na nultém (prvním) místě.
if ($pos === false) {
echo "Řetězec '$findme' nebyl nalezen v řetězci '$mystring'.\n";
} else {
echo "Řetězec '$findme' byl nalezen v řetězci '$mystring'";
echo " a to na pozici $pos.\n";
}
Python
V Pythonu je datový typ bool
.
pravda = True
nepravda = False
if pravda or nepravda:
print "pravda"
if pravda and not nepravda:
print "pravda"
Java
V programovacím jazyce Java je zaveden primitivní typ boolean
.
boolean i = true;
if (i)
System.out.println("i je pravda.");
else
System.out.println("i neni pravda.");
V jazyce Java mohou být boolean hodnoty (stejně jako ostatní primitivní typy) konvertovány na řetězce (výsledkem je řetězec true nebo false).
GML
Protože GML pracuje pouze s datovými typy String (řetězec) a Real (reálné číslo), v GML neexistuje datový typ boolean. GML typ boolean simuluje tak, že definuje konstantu true, resp. false, která obsahuje reálné číslo 1, resp. reálné číslo 0.
promenna0 = choose(true,false) // definuje, že promenna0 je boolean a nese náhodně pravdu či nepravdu
promenna0 = !promenna0 // promenna0 se invertuje (z true je false a z false je true)
if(promenna0) // pokud promenna0 nese pravdu
{
show_message("true") // zobrazí zprávu "true"
}
else // jinak (pokud nenese pravdu)
{
show_message("false") // zobrazí zprávu "false"
}
Související články
Externí odkazy
- (anglicky) Boolean operations