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 ไม่ใช่ศูนย์”