Tõeväärtus (andmetüüp)

Tõeväärtus on arvutiteaduses kahe võimaliku väärtusega andmetüüp, mille väärtusteks on kas tõene või väär.
Tõeväärtus on mõeldud loogika ja Boole’i algebra, millele pani aluse George Boole, väärtuste esitamiseks. See andmetüüp on peamiselt seotud tingimuslausetega, mis võimaldavad erinevaid toiminguid, muutes programmi juhtimisvoogu vastavalt väärtusele.
Üldine.
Programmeerimiskeeltes, kus tõeväärtuse andmetüüp on eeldefineeritud, nagu Pascal ja Java, on üldjuhul väärtuste võrdlemiseks määratud operaatorid, näiteks codice_1 ja codice_2. Tingimuslausetega saab kontrollida ka loogikaavaldiste väärtuseid.
Keeled, millel pole tõeväärtuse andmetüüp eeldefineeritud, nagu C90 ja Lisp, kasutavad tõeväärtuste esitamiseks teisi andmetüüpe. Common Lisp käsitleb tühja loendit kui väära väärtust ja mistahes muud väärtust kui tõest väärtust. C-programmeerimiskeeltes kasutatakse täisarvu andmetüüpi, kus 1 tähistab tõest ja 0 väära väärtust ning tingimuslausetes koheldakse iga nullist erinevat väärtust tõesena.
Enamik programmeerimiskeeli toetab Boole’i algebralisi tehteid: konjunktsioon (codice_3), disjunktsioon (codice_4), ekvivalents (codice_5) ja eitus (codice_6).
Mõningates keeltes, nagu Ruby, on tõene ja väär eraldi klassid ehk sellistes keeltes pole tõeväärtuse andmetüüpi.
C, C++.
Algselt C-keel (1972) ei sisaldanud tõeväärtuse tüüpi eraldi ja väärtusi esindasid täisarvud 1 (tõene) ja 0 (väär). Tingimuslausete korral on kõik nullist erinevad väärtused tõesed. Alates C99 standardist on lisatud tõeväärtuse tüüp. Selleks on vaja lisada päisesse codice_7 Seda tüüpi muutujad käituvad endiselt aga täisarvudena. Seega saab kasutada tõeväärtusi aritmeetiliste arvutuste tegemiseks. Sellist lähenemist kasutatakse C keeltes tänaseni.
Boolean-tüüpi väärtused C++is:
Tõeväärtustega aritmeetiliste tehete arvutamine C++is:
Python, Ruby ja JavaScript.
Pythonisse lisati tõeväärtuse tüüp alates versioonist 2.3, mis on codice_8 klassi alamklass. Väärtusteks on codice_9 ja codice_10, mis käituvad nagu 1 ja 0. Erinevalt teistest keeltest loetakse vääraks arv 0, kümnendmurd 0.0, tühi sõne, tühjad andmestruktuurid (järjendid, lõplikud jadad, magasin jne). Kõik ülejäänud väärtused loetakse tõeseks.
Erinevalt Pythonist on Rubys väär vaid codice_11 ja codice_12 (Ruby nullväärtus), kõik ülejäänud väärtused loetakse tõeseks (kaasa arvatud arv 0, tühjad andmestruktuurid).
Javascriptis ja ka PHPs on väärad tühisõned (codice_13), codice_14, codice_15 (defineerimata), codice_16, +0, -0 ja codice_11 ning ülejäänud on tõesed.
Tõeväärtused Pythonis:
Java.
Javas antakse vaikimisi väärtused alati väärad. Javas ei saa kasutada väärtusi kui täisarve nii nagu C keeltes, sest Javas tõeväärtusi ei teisendata arvulisteks väärtusteks. Seetõttu ei saa Javas kasutada võrratuse tehteid kahe tõeväärtuse vahel, kuid saab kasutada võrdust.
Vaikeväärtused Javas:
SQL.
Tõeväärtuse andmetüüp võeti kasutusele SQL:1999 standardiga. Kui väärtusel on piirang codice_18, siis saab olla tõeväärtus ainult tõene või väär nagu teisteski keeltes. Kuid SQLis on kasutusel ka kolmas tõeväärtus: codice_19 ehk tundmatu. Selline tõeväärtus väärtustatakse tühihulgaga, mis on samaväärne kui codice_20. codice_20 pole väärtus, vaid olek, mis näitab, et andmebaasis objekti ei eksisteeri. Probleeme tekib kui võrrelda oma vahel kahte tundmatut, siis tulemuseks pole mitte tõene vaid codice_22. Erandlikult PostgreSQL-i ja Firebirdi relatsioonilise andmebaasi haldamise süsteemides kasutatakse vaid kahte tõeväärtust ehk pole tundmatut tõeväärtust, kuid saab määrata olekuks codice_20.