การเลือกทำแบบ CASE
ทางเลือกที่มีจำนวนมาก
ในกรณีที่การเลือกทำมีรายการให้เลือกมากไป การเลือกทำแบบ IF ก็อาจจะมีผลให้โปรแกรมมีความยาวเกินความจำเป็น และทำให้อ่านเข้าใจยาก
ลักษณะของการเลือกทำแบบ CASE
การเลือกทำแบบ CASE มีลักษณะดังต่อไปนี้
CASE ตัวแปร มีค่า เท่ากับ ค่าคงที่ : ทำ คำสั่ง ก. เท่ากับ ค่าคงที่ 1 หรือค่าคงที่ 2 : ทำ คำสั่ง ข. อยู่ในช่วงของ คำสั่ง A ถึงค่าคงที่ N : ทำ คำสั่ง ค. ELSE ทำ คำสั่ง ง. END |
รูปแบบของการเลือกทำแบบ CASE
การเลือกทำแบบ CASE มีรูปแบบดังต่อไปนี้
CASE ค่าของตัวแปร OF ค่าคงที่ [, ค่าคงที่] : คำสั่ง ค่าคงที่ .. ค่าคงที่ : คำสั่ง ELSE END |
ค่าของค่าคงที่จะต้องเป็นข้อมูลชนิดเดียวกันกับตัวแปร สำหรับ [, ค่าคงที่] ค่าคงที่.. ค่าคงที่ และ ELSE จะมีหรือไม่มีก็ได้ ส่วนคำสั่งจะเป็นคำสั่งเดียวหรือผสมคำสั่งก็ได้
คอมพิวเตอร์จะทำงานตามเงื่อนไขที่สอดคล้องกันระหว่างตัวแปรกับค่าคงที่ โดยถ้าค่าของตัวแปรเท่ากับค่าคงที่ค่าใดแล้ว โปรแกรมจะทำงานตามคำสั่งทีอยู่ต่อจากเครื่องหมาย : แต่ถ้าไม่มีเงื่อนไขที่สอดคล้องกัน โปรแกรมจะทำงานตามคำสั่งที่อยู่ต่อจาก ELSE
ตัวอย่างโปรแกรมปรับปรุงจากโปรแกรมเดิม โดยเปลี่ยนการเลือกทำจาก IF เป็น CASE แต่การทำงานของโปรแกรมยังคงเหมือนเดิม คือ แสดงอักษรย่อของสีให้เลือก เมื่อเลือกอักษรตัวหนึ่งแล้ว โปรแกรมจะแสดงชื่อเต็มของสีนั้นที่จอภาพ ขอให้สังเกตการใช้ CASE ซึ่งทำให้โปรแกรมสั้นลง และอ่านเข้าใจง่ายขึ้น
PROGRAM CaseColor;
VAR
Choice : Char;
UserQuits : Boolean;
BEGIN
WriteLn( 'What is Color ? ');
UserQuits := False;
REPEAT
Write( 'Select B G O P R Y or Q.uit ');
ReadLn( Choice );
CASE Choice OF
'B', 'b' : WriteLn( 'B is Blue'); { B หรือ b }
'G', 'g' : WriteLn( 'G is Green');
'O', 'o' : WriteLn( 'O is Orange');
'P', 'p' : WriteLn( 'P is Purple');
'R', 'r' : WriteLn( 'R is Red');
'Y', 'y' : WriteLn( 'Y is Yellow');
'Q', 'q' : UserQuits := True;
ELSE WriteLn( 'Error : Try again ')
End
UNTIL UserQuits
END.
การเลือกทำแบบ CASE ซ้อนกัน
ในบางกรณีการเลือกทำแบบ CASE จะต้องใช้ซ้อนกัน ซึ่งมีโครงสร้างดังนี้
CASE ค่าของ ตัวแปร OF { CASE 1 }
ค่าคงที่ : CASE ค่าของตัวแปร OF { CASE 2 }
ค่าคงที่ : คำสั่ง
ELSE คำสั่ง
END { CASE 2 }
ค่าคงที่ : คำสั่ง
ELSE คำสั่ง
END { CASE 1 }
ไม่มีความคิดเห็น:
แสดงความคิดเห็น