Ternary operator: condition ? expr_if_true : expr_if_false
คืนค่า expr_if_true ถ้า condition เป็นจริง มิฉะนั้น expr_if_false
ตัวอย่าง: หาค่าสูงสุดของสองจำนวน
int a = 10, b = 20;
int max = (a > b) ? a : b; // max = 20
การทำงาน
- ประเมิน
a > b→ false - เลือก expr_if_false คือ
b(20) - กำหนดให้ max = 20
ข้อดี
- เขียนสั้นกว่า if-else
- เป็น expression (มีค่า) ใช้ใน initialization ได้
- เหมาะกับการ return ค่าแบบสั้น
ข้อควรระวัง
ไม่ควร nested ternary ลึกเกินไป (อ่านยาก) และหลีกเลี่ยง side effects ใน expressions