การเลือกทำแบบ switch
การ เขียนโปรแกรมที่ต้องมีการเลือกทำหลายทางเลือกเราสามารถนำประโยคคำสั่ง if-else มาซ้อนกันได้ แต่ถ้าเงื่อนไขที่ต้องตัดสินใจขึ้นอยู่กับตัวแปรตัวเดียวเราสามารถใช้คำสั่ง switch..case แทนได้ ตัวอย่างเช่น ถ้าเขียนโปรแกรมเป็นสัญลักษณ์เมนูดังต่อไปนี้
และ ให้ผู้ใช้โปรแกรมเลือกวิธีการคำนวณเข้าไปโดยป้อนค่าอินพุตเข้าไป เราสามารถเขียนโปรแกรมโดยนำค่าอินพุตที่รับเข้าไปเก็บไว้ในตัวแปรตัวหนึ่ง และใช้คำสั่ง switch เลือกว่ามีค่าเท่ากับค่าใด (1ม2ม3ม4) จากนั้นให้ไปทำงานตามที่เลือก ประโยคคำสั่ง switch..case มีรูปแบบดังนี้
รูปแบบ :
switch (variable)
{
case constant_1 : statement;
break;
case constant_2 : statement;
break;
case constant_3 : statement;
break;
............................... .................
case constant_n : statement;
break;
default : statement
}
คำ สั่ง switch นี้จะนำค่าใน variable มาตรวจสอบว่าเท่ากับค่าคงที่ค่าใดหลัง case จากนั้นโปรแกรมจะไปทำสเตตเมนต์หลังค่าคงที่ตัวนั้น และออกจาก switch เมื่อถึงคำสั่ง break แต่ถ้าไม่เท่าค่ากับค่าคงที่ค่าใดเลย โปรแกรมจะไปทำสเตตเมนต์หลัง default สำหรับค่าที่ใช้ตรวจสอบจะเป็นตัวแปร นิพจน์ หรือฟังก์ชันก็ได้ สำหรับในแต่ละ case สามารถมีคำสั่งได้มากกว่าหนึ่งคำสั่งหรืออาจไม่มีก็ได้ โดยถ้าไม่มีคำสั่งโปรแกรมจะไปทำงานใน case ถัดไป และค่าคงที่หลัง case จะต้องเป็น int หรือ char เท่านั้น
สำหรับ ตัวแปรเลือกทำที่อยู่ตามหลัง switch จะต้องเป็นตัวแปรประเภทลำดับ ซึ่งจะทำให้คอมพิวเตอร์สามารถเดาค่าได้ และค่าคงที่ต้องเป็นตัวโปรแกรมประเภทเดียวกับตัวแปรที่ตามหลัง switch การทำงานของคำสั่ง switch..case อาจจะเขียนเป็นผังงานได้ดังนี้
รูปแบบ :
switch (variable)
{
case constant_1 : statement;
break;
case constant_2 : statement;
break;
case constant_3 : statement;
break;
............................... .................
case constant_n : statement;
break;
default : statement
}
คำ สั่ง switch นี้จะนำค่าใน variable มาตรวจสอบว่าเท่ากับค่าคงที่ค่าใดหลัง case จากนั้นโปรแกรมจะไปทำสเตตเมนต์หลังค่าคงที่ตัวนั้น และออกจาก switch เมื่อถึงคำสั่ง break แต่ถ้าไม่เท่าค่ากับค่าคงที่ค่าใดเลย โปรแกรมจะไปทำสเตตเมนต์หลัง default สำหรับค่าที่ใช้ตรวจสอบจะเป็นตัวแปร นิพจน์ หรือฟังก์ชันก็ได้ สำหรับในแต่ละ case สามารถมีคำสั่งได้มากกว่าหนึ่งคำสั่งหรืออาจไม่มีก็ได้ โดยถ้าไม่มีคำสั่งโปรแกรมจะไปทำงานใน case ถัดไป และค่าคงที่หลัง case จะต้องเป็น int หรือ char เท่านั้น
สำหรับ ตัวแปรเลือกทำที่อยู่ตามหลัง switch จะต้องเป็นตัวแปรประเภทลำดับ ซึ่งจะทำให้คอมพิวเตอร์สามารถเดาค่าได้ และค่าคงที่ต้องเป็นตัวโปรแกรมประเภทเดียวกับตัวแปรที่ตามหลัง switch การทำงานของคำสั่ง switch..case อาจจะเขียนเป็นผังงานได้ดังนี้