ตัวดำเนินการ Ternary (Ternary Operator) ใน Java ช่วยให้เขียนเงื่อนไข if-else แบบสั้นๆ ในบรรทัดเดียว ได้ผลลัพธ์เป็น true หรือ false และคืนค่าตามเงื่อนไขที่กำหนด
รูปแบบ Ternary Operator
variable = (condition) ? valueIfTrue : valueIfFalse;
ชื่อ "Ternary" มาจากการมี 3 ส่วนประกอบ (3 operands):
- condition - เงื่อนไขที่ต้องการตรวจสอบ
- valueIfTrue - ค่าที่จะกำหนดให้ variable หากเงื่อนไขเป็น true
- valueIfFalse - ค่าที่จะกำหนดให้ variable หากเงื่อนไขเป็น false
ไม่จำเป็นต้องกำหนดให้ตัวแปรเสมอไป สามารถใช้ใน System.out.println() ได้โดยตรง
ตัวอย่างการใช้งาน
ตรวจสอบอายุผู้ใช้ว่าอนุญาตให้ซื้อสินค้าได้หรือไม่ (ต้องอายุ 16 ปีขึ้นไป)
public class EvaluateAge {
public static void main(String[] args) {
int age = 22;
String result = (age >= 16) ? "This user is over 16." : "This user is under 16.";
System.out.println(result);
}
}
ผลลัพธ์: This user is over 16.
เปรียบเทียบกับ if-else ธรรมดา
// แบบ if-else (5 บรรทัด)
if (age >= 16) {
String result = "This user is over 16.";
} else {
String result = "This user is under 16.";
}
// แบบ Ternary (1 บรรทัด)
String result = (age >= 16) ? "This user is over 16." : "This user is under 16.";
เมื่อไหร่ควรใช้ Ternary Operator
- เงื่อนไขง่าย สั้น ไม่ซับซ้อน
- ต้องการให้โค้ดอ่านง่าย กระชับ
- ไม่ควรใช้กับเงื่อนไขซับซ้อน เพราะจะทำให้โค้ดอ่านยาก
ทั้ง Ternary และ if-else ประเมินค่า Boolean expression (true/false) เท่านั้น
สรุป
Ternary Operator ช่วยเขียนเงื่อนไข if-else ให้กระชับและอ่านง่าย เหมาะสำหรับเงื่อนไขง่ายๆ ที่ต้องการคืนค่าทันที