ความสบายใจ - การประเมินการลัดวงจร

เมื่อเงื่อนไขถูกทดสอบโดย 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 เงื่อนไขได้เนื่องจากคุณต้องดูแลว่าผลลัพธ์เป็นจริงหรือเท็จเท่านั้นและต้องใช้เงื่อนไขในการสร้างอะตอมด้วย