ออเปอเรเตอร์เงื่อนไขนี้รู้จักอีกชื่อว่า Ternary Operator ออเปอเรเตอร์นี้มี 3 ส่วน
Exp1 ? Exp2 : Exp3;
โดยที่ Exp1, Exp2, และ Exp3 เป็นนิพจน์ สังเกตการใช้และตำแหน่งของ colon ค่าของนิพจน์ ? ถูกกำหนดดังนี้: ประเมิน Exp1 ถ้าเป็นจริง (true) Exp2 จะถูกประเมินและกลายเป็นค่าของนิพจน์ ? ทั้งหมด ถ้า Exp1 เป็นเท็จ (false) Exp3 จะถูกประเมินและค่าของมันจะกลายเป็นค่าของนิพจน์
? เรียกว่า ternary operator เพราะต้องการ 3 operands และสามารถใช้แทนคำสั่ง 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() {
int x, y = 10;
x = (y < 10) ? 30 : 40;
cout << "value of x: " << x << endl;
return 0;
}
ผลลัพธ์ตัวอย่าง
value of x: 40