ความสบายใจ - การประเมินการลัดวงจร
เมื่อเงื่อนไขถูกทดสอบโดย if, elsif, until, หรือ while โดยใช้ and หรือ orตัวดำเนินการใช้การประเมินการลัดวงจร ตัวอย่างเช่น -
if a < 0 and b > 0 then
-- block of code
end if
ถ้า <0 เป็นเท็จ Euphoria จะไม่สนใจที่จะทดสอบว่า b มากกว่า 0 หรือไม่โดยจะรู้ว่าผลลัพธ์โดยรวมเป็นเท็จไม่ว่า ในทำนองเดียวกัน -
if a < 0 or b > 0 then
-- block of code
end if
ถ้า <0 เป็นจริง Euphoria จะตัดสินทันทีว่าผลลัพธ์เป็นจริงโดยไม่ต้องทดสอบค่า b เนื่องจากผลของการทดสอบนี้ไม่เกี่ยวข้อง
โดยทั่วไปเมื่อใดก็ตามที่คุณมีเงื่อนไขในรูปแบบต่อไปนี้ -
A and B
โดยที่ A และ B สามารถเป็นสองนิพจน์ใด ๆ Euphoria จะตัดสั้นเมื่อ A เป็นเท็จและทำให้ผลลัพธ์โดยรวมเป็นเท็จทันทีโดยไม่ต้องดูนิพจน์ B
ในทำนองเดียวกันเมื่อใดก็ตามที่คุณมีเงื่อนไขดังต่อไปนี้ -
A or B
โดยที่ A เป็นจริง Euphoria จะข้ามการประเมินนิพจน์ B และประกาศว่าผลลัพธ์เป็นจริง
Short-circuitการประเมินและและหรือเกิดขึ้นสำหรับ if, elsif, until และ while เงื่อนไขเท่านั้น ไม่ได้ใช้ในบริบทอื่น ๆ ตัวอย่างเช่น -
x = 1 or {1,2,3,4,5} -- x should be set to {1,1,1,1,1}
หากมีการใช้การลัดวงจรที่นี่คุณจะต้องตั้งค่า x เป็น 1 และไม่ได้ดูที่ {1,2,3,4,5} ซึ่งจะผิด
ดังนั้นจึงสามารถใช้การลัดวงจรใน if, elsif, until หรือ while เงื่อนไขได้เนื่องจากคุณต้องดูแลว่าผลลัพธ์เป็นจริงหรือเท็จเท่านั้นและต้องใช้เงื่อนไขในการสร้างอะตอมด้วย