삼항 연산자 (컴퓨터 과학)

컴퓨터 과학에서 삼항 연산자(ternary operator)는 세 인자를 입력으로 받아 하나의 출력을 반환하는 연산자이다.

컴퓨터 과학

컴퓨터 과학에서 연산자는 세 개의 인자(또는 피연산자)를 취하면 삼항 연산자이다.

많은 C-스타일 문법을 사용하는 프로그래밍 언어는 값을 산출하는 조건식을 정의하는 삼항 조건 연산자 ?:를 특징으로 한다. 이는 관련 없는 여러 삼항 연산자가 존재함에도 불구하고 때때로 단순히 삼항 연산자라고 불린다.

식 x = a ? b : c에서 변수 x는 a가 참이면 b 값을 할당받는다. 그렇지 않으면 c 값을 할당받는다.

일부 언어는 다른 문법을 사용한다. 파이썬에서 동일한 식은 x = b if a else c 형식을 취한다. Excel 수식에서는 =IF(a, b, c) 형식이다.

많은 언어에는 삼항 조건 연산자가 없지만, 일부는 대안을 가지고 있다. 예를 들어, Ruby는 삼항 조건 연산자를 가지고 있지만, if/elsif/else 흐름 제어 구조가 값을 산출하므로 동일한 목적을 수행할 수 있다. SQL에서 CASE 식은 많은 조건을 평가하여 값을 산출한다. 이러한 예시는 세 개 이상의 구성 요소를 가질 수 있으므로 엄격하게 삼항이 아니다.

삼항 조건 연산자 외의 삼항 연산자도 존재한다.

파이썬에서 식 a[b:c]는 배열의 일부를 슬라이싱한다. 결과는 b부터 c-1까지의 a의 모든 요소를 포함하는 새 배열이다.

OCaml에서 식 a.(b) <- c는 배열 a의 요소 b를 값 c로 업데이트한다.

일부 어셈블리어에서 MAD 연산은 삼항 형식이다. MAD a, b, c 문은 b와 c를 곱하고, 결과를 a에 더하고, 최종 결과를 a에 저장하며, 이 모든 것이 단일 CPU 사이클에서 이루어진다. 일부 어셈블리어에서는 피연산자 순서가 다를 수 있다. 일부에서는 결과를 저장할 위치를 나타내는 네 번째 피연산자가 필요하므로 이 연산은 삼항이 아니다.

SQL 식 BETWEEN은 age BETWEEN 90 AND 100과 같이 삼항이다.

아이콘식 to는 by와 함께 사용될 때 삼항이 되는데, 예를 들어 1 to 10 by 2는 1부터 9까지의 홀수 정수를 생성한다.

 같이 보기 
 단항연산
 이항 연산
 다수결 함수
 ?: (컴퓨터 프로그래밍 언어의 삼항 연산자 목록)
 삼항 배타적 논리합

 각주 

 외부 링크