Page 145 - เอกสารประกอบการสอนพื้นฐานการเขียนโปรแกรมคอมพิวเตอร์
P. 145
144
นอกจากการใช้ (if…else if…) กับเงื่อนไขที่มีให้เลือกมากกว่า 2 ทางแล้ว ในภาษาซี ยังมี
ค าสั่ง switch อีกค าสั่งหนึ่งที่น ามาใช้แทนค าสั่ง if ที่ซ้อนกันหลาย ๆ ชั้น โดยที่ค าสั่ง switch จะน า
ค่าของตัวแปรที่อยู่หลังค าสั่ง switch มาเปรียบเทียบกับค่าที่อยู่หลัง case แต่ละค าสั่ง ถ้าตรงกัน ก็
จะท างานตามค าสั่งที่อยู่ใน case นั้น ๆ แต่ถ้าไม่ตรงกับ case ใด ๆ เลยจะท าค าสั่งที่อยู่หลัง default
โดยค าสั่งที่อยู่ในแต่ละ case และ default จะต้องมีค าสั่ง break; ปิดท้ายเสมอเพื่อให้หลุดออกจาก
เงื่อนไข โดยไม่ต้องท างานจนจบบล็อกของค าสั่ง switch ข้อดีของค าสั่ง switch…case คือใช้งานง่าย
เหมาะกับทางเลือกที่มีหลาย ๆ ทางเลือก ส าหรับข้อเสียคือใช้ได้กับตัวแปรที่เป็นค่าคงที่ประเภท
จ านวนเต็ม (int) หรือตัวแปรที่เป็นค่าคงที่ประเภทตัวอักษรตัวเดียว (char) เท่านั้น และความหมาย
ในการเปรียบเทียบทางตรรกะที่ใช้คือเท่ากับ (==) เท่านั้น จะใช้กับมากกว่า (>) มากกว่าเท่ากับ (>=)
น้อยกว่า (<) น้อยกว่าเท่ากับ (<=) ไม่ได้
รูปแบบค าสั่ง switch…case
switch (ตัวแปร)
{
case ค่าคงที่ : ค าสั่งที่ให้ท า;
break;
case ค่าคงที่ : ค าสั่งที่ให้ท า;
break;
case ค่าคงที่ : ค าสั่งที่ให้ท า;
break;
default : ค าสั่งที่ให้ท า;
break;
}
หากมีค าสั่งที่ให้ท ามากกว่า 1 ค าสั่ง จะต้องอยู่ภายในเครื่องหมาย { } เสมอ
switch (ตัวแปร)
{
case ค่าคงที่ : {ค าสั่งที่ให้ท า;
ค าสั่งที่ให้ท า;}
break;
default : ค าสั่งที่ให้ท า;
break;
}