Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

C/C++ Ternary Operator


ไวยากรณ์ของตัวดำเนินการ 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