컴퓨터 과학에서 불리언 자료형(Boolean Data Type) 또는 참거짓은 논리 자료형이라고도 하며, 참과 거짓을 나타내는 데 쓰인다. 주로 참은 1, 거짓은 0에 대응하나 언어마다 차이가 있다. 숫자를 쓰지 않고 참과 거짓을 나타내는 영단어 true와 false를 쓰기도 한다. 불리언(Boolean)이라는 말은 영국의 수학자 겸 논리학자인 조지 불(George Boole)의 이름에서 따온 것이다.
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);
opabs = (bool a)int: ( a | 1 | 0 );
C
C99 표준부터는 bool 자료형을 지원하나 그 이전에는 불리언 자료형을 지원하지 않았기 때문에 다음과 같은 방법을 사용하였다.
자바에서는 boolean이라는 자료형을 지원한다.
C 같은 언어와 달리 자바에서는 boolean 자료형에 관계된 형 변환을 지원하지 않기 때문에 아래와 같은 코드는 컴파일할 수 없다.
inti=1;if(i)System.out.println("i is not zero.");elseSystem.out.println("i is zero.");
if 구문에서는 괄호 안에 boolean 조건이 와야 하는데 int형 변수 i가 자바에서는 boolean형으로 변환되지 않기 때문이다.
아래와 같은 코드는 컴파일 할 수 있다.
intnum=1;booleansearch=false;while(num<100){if(((num%5)==0)&&((num%7)==0)){search=true;break;}num++;}if(search)System.out.println("찾는 정수 : "+num);elseSystem.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");
Ocaml
#1=1;;-:bool=true
ML
- fun isittrue x = if x then "YES" else "NO" ;
> val isittrue = fn : bool -> string
- isittrue true;
> val it = "YES" : string
- isittrue false;
> val it = "NO" : string
- isittrue (8=8);
> val it = "YES" : string
- isittrue (7=5);
> val it = "NO" : string
>>>classspam:pass# spam is assigned a class object....>>>eggs="eggs"# eggs is assigned a string object.>>>spam==eggs# (Note double equals sign for equality testing).False>>>spam!=eggs# != and == always return bool values.True>>>spamandeggs# and returns an operand.'eggs'>>>spamoreggs# or also returns an operand.<class__main__.spamat0x01292660>>>>
루비
a=0if(a)print"true"elseprint"false"end
pfalse.classptrue.classpnil.class
SQL
CREATETABLEtest1(aint,bboolean);INSERTINTOtest1VALUES(1,true);INSERTINTOtest1VALUES(2,false);INSERTINTOtest1VALUES(3,null);-- The SQL:1999 standard says that vendors can use null in place of the-- SQL Boolean value unknown. It is left to the vendor to decide if-- null should be used to completely replace unknown. The standard also-- says that null should be treated as equivalent to unknown, which is an-- inconsistency. The following line may not work on all SQL:1999-compliant-- systems.INSERTINTOtest1VALUES(4,unknown);SELECT*FROMtest1;
비주얼 베이직
DimisSmallAsBooleanisSmall=intMyNumber<10' Expression evaluates to True or FalseIfisSmallThenMsgBox("The number is small")EndIfDimhellFreezesOverAsBoolean' Boolean variables are initialized as FalsehellFreezesOver=False' Or you can use an assignment statementDoCallCheckAndProcessUserInput()LoopUntilhellFreezesOver