Elm - การตัดสินใจ

โครงสร้างการตัดสินใจต้องการให้โปรแกรมเมอร์ระบุเงื่อนไขอย่างน้อยหนึ่งเงื่อนไขที่จะประเมินหรือทดสอบโดยโปรแกรมพร้อมกับคำสั่งหรือคำสั่งที่จะดำเนินการหากเงื่อนไขถูกกำหนดให้เป็นจริงและเป็นทางเลือกที่จะดำเนินการคำสั่งอื่น ๆ หาก เงื่อนไขถูกกำหนดให้เป็นเท็จ

ด้านล่างนี้เป็นรูปแบบทั่วไปของโครงสร้างการตัดสินใจโดยทั่วไปที่พบในภาษาโปรแกรมส่วนใหญ่

โครงสร้างการตัดสินใจจะประเมินเงื่อนไขก่อนดำเนินการตามคำสั่ง โครงสร้างการตัดสินใจใน Elm แบ่งได้ดังนี้ -

เลขที่ คำให้การ คำอธิบาย
1 ถ้า ... แล้ว ... อื่นคำสั่ง คำสั่ง if ประกอบด้วยนิพจน์บูลีนตามด้วยซึ่งจะถูกดำเนินการหากนิพจน์ส่งคืนเป็นจริงและอื่น ๆ ซึ่งจะถูกดำเนินการหากนิพจน์ส่งคืนเท็จ
2 คำสั่ง if ซ้อนกัน คุณสามารถใช้ if ... then ... else inside another if.
3 คำชี้แจงกรณี ทดสอบค่าของตัวแปรเทียบกับรายการค่า

ถ้า ... แล้ว ... อื่น ๆ คำชี้แจง

if…thenโครงสร้างจะประเมินเงื่อนไขก่อนที่จะดำเนินการบล็อกโค้ด หากนิพจน์บูลีนประเมินว่าเป็นจริงบล็อกของโค้ดที่อยู่ในคำสั่งนั้นจะถูกดำเนินการ ถ้านิพจน์บูลีนประเมินว่าเป็นเท็จบล็อกของโค้ดภายในคำสั่ง else จะถูกเรียกใช้

ไม่เหมือนกับภาษาโปรแกรมอื่น ๆ ใน Elm เราต้องระบุสาขาอื่น มิฉะนั้น Elm จะโยนข้อผิดพลาด

ไวยากรณ์

if boolean_expression then statement1_ifTrue else statement2_ifFalse

ภาพประกอบ

ลองใช้ตัวอย่างต่อไปนี้ในเทอร์มินัล REPL

> if 10>5 then "10 is bigger" else "10 is small"
"10 is bigger" : String

ซ้อนถ้า

คำสั่ง if ที่ซ้อนกันมีประโยชน์สำหรับการทดสอบหลายเงื่อนไข ไวยากรณ์ของคำสั่ง if ที่ซ้อนกันได้รับด้านล่าง -

if boolean_expression1 then statement1_ifTrue else if boolean_expression2 then statement2_ifTrue else statement3_ifFalse

ภาพประกอบ

ลองใช้ตัวอย่างต่อไปนี้ใน Elm REPL -

> score=80
80 : number
> if score>=80 then "Outstanding" else if score > = 70 then "good" else "average"
"Outstanding" : String

คำชี้แจงกรณี

สามารถใช้คำสั่ง case เพื่อลดความซับซ้อนของคำสั่ง if then else ไวยากรณ์ของคำสั่ง case มีดังต่อไปนี้ -

case variable_name of
   constant1 -> Return_some_value
   constant2 -> Return_some_value
   _ -> Return_some_value if none of the above values match

คำสั่ง case ตรวจสอบว่าค่าของตัวแปรตรงกับชุดค่าคงที่ที่กำหนดไว้ล่วงหน้าหรือไม่และส่งกลับค่าที่เกี่ยวข้อง โปรดทราบว่าค่าที่ส่งคืนโดยแต่ละกรณีต้องเป็นประเภทเดียวกัน หากค่าตัวแปรไม่ตรงกับค่าคงที่ที่กำหนดการควบคุมจะถูกส่งไปที่ * default * (แสดงด้วย // _) และส่งคืนค่าที่เกี่ยวข้อง

ภาพประกอบ

ลองใช้ตัวอย่างต่อไปนี้ใน Elm REPL -

> n = 10
10 : number
> case n of \
| 0 -> "n is Zero" \
| _ -> "n is not Zero"
"n is not Zero" : String

ข้อมูลโค้ดด้านบนตรวจสอบว่าค่าของ n เป็นศูนย์หรือไม่ การควบคุมจะถูกส่งไปยังค่าเริ่มต้นซึ่งจะส่งคืนสตริง“ n ไม่ใช่ศูนย์”