ออเปอเรเตอร์ที่ต้องการโอเปอรานด์ (operands) สามตัวในการทำงาน เรียกว่าออเปอเรเตอร์ ternary สามารถแสดงด้วย ? : ยังเรียกอีกอย่างว่า conditional operator ออเปอเรเตอร์นี้ช่วยเพิ่มประสิทธิภาพและลดจำนวนบรรทัดของโค้ด
ไวยากรณ์ของออเปอเรเตอร์ ternary ในภาษา C มีดังนี้:
Expression1 ? Expression2 : Expression3
ตัวอย่างของออเปอเรเตอร์ ternary ในภาษา C:
ตัวอย่าง
#include <stdio.h>
int main() {
int a = -1;
double b = 26.4231;
int c = a? printf("True value : %lf",b):printf("False value : 0");
return 0;
}ผลลัพธ์
True value : 26.423100
Expression1 จะถูกประเมินค่าอยู่เสมอ ในขณะที่ expression2 และ expression3 ขึ้นอยู่กับผลลัพธ์ของ expression1 หากผลลัพธ์ของ expression1 เป็น non-zero หรือค่าลบ expression2 จะถูกแสดง ไม่เช่นนั้น expression3 จะถูกแสดง
ออเปอเรเตอร์ ternary มีชนิดค่าที่ส่งคืน (return type) ชนิดค่าที่ส่งคืนขึ้นอยู่กับ expression2 และความสามารถในการแปลง expression3 ให้เป็น expression2 หากไม่สามารถแปลงได้ คอมไพเลอร์จะแสดงข้อผิดพลาด
ตัวอย่างอีกอย่างของออเปอเรเตอร์ ternary ในภาษา C:
ตัวอย่าง
#include <stdio.h>
int main() {
int x = -1, y = 3;
double b = x+y+0.5;
int c = x<y? printf("True value : %lf",b):printf("False value : 0");
return 0;
}ผลลัพธ์
True value : 2.500000