ตัวดำเนินการตามเงื่อนไขนี้เรียกอีกอย่างว่าตัวดำเนินการแบบสามส่วน โอเปอเรเตอร์นี้มีสามเฟส
Exp1 ? Exp2 : Exp3;
โดยที่ Exp1, Exp2 และ Exp3 เป็นนิพจน์ สังเกตการใช้และตำแหน่งของทวิภาค ค่าของ ? นิพจน์ถูกกำหนดเช่นนี้:ประเมิน Exp1 หากเป็นจริง Exp2 จะถูกประเมินและกลายเป็นค่าของ ? การแสดงออก. หาก Exp1 เป็นเท็จ ระบบจะประเมิน Exp3 และค่าจะกลายเป็นค่าของนิพจน์
ที่ ? เรียกว่า ternary operator เนื่องจากต้องใช้ตัวถูกดำเนินการ 3 ตัว และสามารถใช้แทนคำสั่ง if-else ซึ่งมีรูปแบบดังนี้
if(condition) { var = X; } else { var = Y; }
ตัวอย่างเช่น พิจารณาโค้ดต่อไปนี้
if(y < 10) { var = 30; } else { var = 40; }
โค้ดด้านบนเขียนใหม่ได้แบบนี้
var = (y < 10) ? 30 : 40;
โค้ดตัวอย่าง
#include <iostream> using namespace std; int main () { // Local variable declaration: int x, y = 10; x = (y < 10) ? 30 : 40; cout << "value of x: " << x << endl; return 0; }
ผลลัพธ์
value of x: 40