คำถามติดแท็ก conditional-operator

ตัวดำเนินการตามเงื่อนไขเป็นตัวดำเนินการด้านที่เป็นส่วนหนึ่งของไวยากรณ์สำหรับนิพจน์เงื่อนไขพื้นฐานในภาษาโปรแกรมต่างๆ มักเรียกกันทั่วไปว่าตัวดำเนินการ ternary หรือ inline if ภาษาที่แตกต่างกันมีไวยากรณ์ที่แตกต่างกันสำหรับโครงสร้างเดียวกัน แต่ทั้งหมดเลือกระหว่างหนึ่งในสองตัวเลือกตามเงื่อนไข

9
จะทำ one-liner if else statement ได้อย่างไร?
ฉันสามารถเขียนคำสั่ง if-else อย่างง่ายพร้อมการกำหนดตัวแปรใน go (golang) เหมือนที่ฉันทำใน php ได้หรือไม่ ตัวอย่างเช่น: $var = ( $a > $b )? $a: $b; ตอนนี้ฉันต้องใช้สิ่งต่อไปนี้: var c int if a > b { c = a } else { c = b } ขออภัยฉันจำชื่อไม่ได้หากคำสั่งควบคุมนี้และฉันไม่พบข้อมูลในไซต์หรือจากการค้นหาโดย Google : /

17
วิธีเขียนนิพจน์ ternary operator (aka if) โดยไม่ต้องทำซ้ำ
ตัวอย่างเช่นสิ่งนี้: var value = someArray.indexOf(3) !== -1 ? someArray.indexOf(3) : 0 มีวิธีเขียนที่ดีกว่านี้ไหม อีกครั้งฉันไม่ได้ต้องการคำตอบสำหรับคำถามที่แน่นอนข้างต้นเป็นเพียงตัวอย่างของเวลาที่คุณอาจมีตัวถูกดำเนินการซ้ำ ๆ ในนิพจน์ตัวดำเนินการที่เกี่ยวข้อง ...

17
ประโยชน์ของการใช้ตัวดำเนินการตามเงื่อนไข?: (ternary)
ประโยชน์และข้อเสียของตัวดำเนินการคืออะไรเมื่อเทียบกับคำสั่ง if-else มาตรฐาน สิ่งที่ชัดเจนคือ: เงื่อนไข?: Operator สั้นลงและกระชับมากขึ้นเมื่อต้องจัดการกับการเปรียบเทียบมูลค่าโดยตรงและการมอบหมายงาน ดูเหมือนจะไม่ยืดหยุ่นเท่าโครงสร้าง if / else มาตรฐานถ้า / อื่น สามารถนำไปใช้กับสถานการณ์อื่น ๆ (เช่นการเรียกใช้ฟังก์ชัน) มักจะยาวโดยไม่จำเป็น ความสามารถในการอ่านดูเหมือนจะแตกต่างกันไปขึ้นอยู่กับคำแถลง หลังจากที่ได้สัมผัสกับโอเปอเรเตอร์?: เป็นครั้งแรกฉันใช้เวลาพอสมควรในการแยกแยะว่ามันทำงานอย่างไร คุณจะแนะนำให้ใช้ทุกที่ที่เป็นไปได้หรือยึดติดกับ if / else เนื่องจากฉันทำงานกับผู้ที่ไม่ใช่โปรแกรมเมอร์หลายคน

9
เหตุใด C จึงไม่อนุญาตให้เชื่อมสตริงเข้าด้วยกันเมื่อใช้ตัวดำเนินการตามเงื่อนไข
โค้ดต่อไปนี้คอมไพล์ได้โดยไม่มีปัญหา: int main() { printf("Hi" "Bye"); } อย่างไรก็ตามสิ่งนี้ไม่ได้รวบรวม: int main() { int test = 0; printf("Hi" (test ? "Bye" : "Goodbye")); } เหตุผลนั้นคืออะไร?

5
ความแตกต่างระหว่าง C # และตัวดำเนินการ ternary ของ Java (? :)
ฉันเป็นมือใหม่ C # และฉันเพิ่งพบปัญหา มีความแตกต่างระหว่าง C # และ Java เมื่อจัดการกับตัวดำเนินการ ternary ( ? :) ในส่วนรหัสต่อไปนี้เหตุใดบรรทัดที่ 4 จึงไม่ทำงาน คอมไพเลอร์แสดงข้อความแสดงข้อผิดพลาดของthere is no implicit conversion between 'int' and 'string'. บรรทัดที่ 5 ก็ใช้ไม่ได้เช่นกัน ทั้งสองListเป็นวัตถุไม่ใช่เหรอ? int two = 2; double six = 6.0; Write(two > six ? two : six); //param: double Write(two > six …

3
วิธีการติดตั้งตัวดำเนินการเงื่อนไข ternary ใน MySQL
ฉันต้องการใช้ตัวดำเนินการเงื่อนไขที่สามใน MySQL ฉันมีตารางที่มีรหัสเขตข้อมูลหนึ่งรายการ ค่าของมันอาจเป็นโมฆะ ฉันต้องการแสดงidในรูปแบบเงื่อนไขแบบ ternary ดังนี้: select id = id == null ? 0 : id; เป็นไปได้ใน MySQL?

4
จำเป็นต้องยกเลิกการทำกล่องอัตโนมัติของบุคคลที่สามถ้าอื่น
รหัสชิ้นนี้ทำงานได้ดี: - Integer nullInt = null; if (1 <= 3) { Integer secondNull = nullInt; } else { Integer secondNull = -1; } System.out.println("done"); แต่สิ่งนี้จะทำให้เกิดข้อยกเว้นตัวชี้โมฆะในขณะที่ Eclipse เตือนว่าไม่จำเป็นต้องทำการแกะกล่องโดยอัตโนมัติ: - Integer nullInt = null; Integer secondNull = 1 <= 3 ? nullInt : -1; System.out.println("done"); ทำไมถึงเป็นเช่นนั้นใครบางคนสามารถนำทางได้โปรด

5
C ++ การมอบหมายแบบสามภาคของแลมบ์ดา
ความคิดใดที่ว่าทำไมข้อมูลโค้ดต่อไปนี้ไม่ได้รวบรวม มันบ่นกับข้อผิดพลาด "ข้อผิดพลาด: ตัวถูกดำเนินการหรือไม่: มีประเภทที่แตกต่างกัน" auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 : lambda2;

1
พฤติกรรมที่ประกอบไปด้วยสามแปลกของ Java เมื่อกำหนดค่า Java กำลังทำอะไรอยู่เบื้องหลังเพื่อให้สิ่งนี้เกิดขึ้น?
ไม่กี่วันที่ผ่านมาฉันพบกับสถานการณ์ที่น่าสนใจที่ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับว่า Java ให้เหตุผลต่อไปนี้ได้หรือไม่ (ตัวอย่างข้อมูลนี้เป็นเพียงรูปแบบของข้อบกพร่อง) @Test public void test() { boolean bool = false; Integer intVal = Integer.valueOf(5); Long longVal = null; Long result = bool ? intVal : longVal; System.out.println(" > " + result); } ในตัวอย่างด้านบน: ถ้า bool = true คุณจะได้ค่า '5' แต่ถ้า bool = false คุณจะได้รับข้อยกเว้นตัวชี้ null …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.