ไวยากรณ์ของตัวดำเนินการ ternary คือ −
(expression-1) ? expression-2 : expression-3
ตัวดำเนินการนี้ส่งกลับค่าหนึ่งในสองค่าขึ้นอยู่กับผลลัพธ์ของนิพจน์ หาก "นิพจน์-1" ถูกประเมินว่าเป็นจริงบูลีน นิพจน์-2 จะได้รับการประเมินและค่าของนิพจน์นั้นจะถูกส่งกลับเป็นผลลัพธ์สุดท้าย มิฉะนั้น นิพจน์-3 จะได้รับการประเมินและค่าของนิพจน์นั้นจะถูกส่งกลับเป็นผลลัพธ์สุดท้าย
ตัวอย่าง
ให้เราเขียนโปรแกรมหาจำนวนสูงสุดสองตัวโดยใช้ตัวดำเนินการแบบไตรภาค
#include <iostream> using namespace std; int main() { int a = 10; int b = 20; int max = a > b ? a : b; cout << "Maximum value = " << max << "\n"; return 0; }
หากเราเปรียบเทียบไวยากรณ์ของตัวดำเนินการ ternary กับตัวอย่างข้างต้น −
- นิพจน์-1 คือ (a> b)
- นิพจน์-2 คือ a
- นิพจน์-3 คือ b
ขั้นแรก นิพจน์ a> b จะถูกประเมิน ซึ่งจะประเมินค่าบูลีนเป็นเท็จ เนื่องจากค่าของตัวแปร 'a' น้อยกว่าค่าของตัวแปร 'b' ดังนั้นค่าของตัวแปร 'b' เช่น '20' จะถูกส่งกลับซึ่งกลายเป็นผลลัพธ์สุดท้ายและถูกกำหนดให้กับตัวแปร 'max'
ผลลัพธ์
เมื่อคุณคอมไพล์และรันโค้ดด้านบน มันจะสร้างเอาต์พุตต่อไปนี้ -
Maximum value = 20