โครงสร้างนี้เรียกว่าTernary Operatorในวิทยาการคอมพิวเตอร์และเทคนิคการโปรแกรม
และWikipediaแนะนำคำอธิบายต่อไปนี้:
ในวิทยาการคอมพิวเตอร์ผู้ประกอบการที่สาม (บางครั้งเรียกว่าผู้ประกอบการระดับอุดมศึกษาที่ไม่ถูกต้อง) เป็นผู้ประกอบการที่ใช้เวลาสามข้อโต้แย้ง ข้อโต้แย้งและผลลัพธ์สามารถเป็นประเภทที่แตกต่างกัน ภาษาการเขียนโปรแกรมจำนวนมากที่ใช้รูปแบบ C-like มีตัวดำเนินการประกอบไปด้วย,?: ซึ่งกำหนดนิพจน์เงื่อนไข
ไม่เพียง แต่ใน Java เท่านั้นไวยากรณ์นี้ยังมีอยู่ใน PHP, Objective-C ด้วย
ในลิงค์ต่อไปนี้จะให้คำอธิบายต่อไปนี้ซึ่งเงียบดีที่จะเข้าใจมัน:
ผู้ประกอบการที่ประกอบไปด้วยคือการดำเนินงานบางอย่างดำเนินงานใน 3 อินพุต มันเป็นทางลัดสำหรับคำสั่ง if-else และเป็นที่รู้จักกันในชื่อโอเปอเรเตอร์ที่มีเงื่อนไข
ใน Perl / PHP มันทำงานเป็น:
boolean_condition ? true_value : false_value
ใน C / C ++ มันทำงานเป็น:
logical expression ? action for true : action for false
สิ่งนี้อาจอ่านได้สำหรับเงื่อนไขเชิงตรรกะบางอย่างที่ไม่ซับซ้อนเกินไปมิฉะนั้นจะดีกว่าถ้าใช้บล็อก If-Elseพร้อมการรวมกันของตรรกะตามเงื่อนไข
เราสามารถทำให้บล็อก If-Elseง่ายขึ้นด้วยโอเปอร์เรเตอร์ Ternary นี้สำหรับบรรทัดคำสั่งโค้ดหนึ่งบรรทัด
ตัวอย่างเช่น:
if ( car.isStarted() ) {
car.goForward();
} else {
car.startTheEngine();
}
อาจจะเท่ากับดังต่อไปนี้:
( car.isStarted() ) ? car.goForward() : car.startTheEngine();
ดังนั้นหากเราอ้างถึงข้อความของคุณ:
int count = isHere ? getHereCount(index) : getAwayCount(index);
จริงๆแล้วมันเทียบเท่า 100% ของบล็อก If-Elseต่อไปนี้:
int count;
if (isHere) {
count = getHereCount(index);
} else {
count = getAwayCount(index);
}
แค่นั้นแหละ!
หวังว่านี่จะเป็นประโยชน์กับใครบางคน!
ไชโย!