Más contenido relacionado
La actualidad más candente (20)
Más de Chommy Rainy Day (20)
Unit11
- 2. = C programming By…iamch❀mmy =
บทที่ 11 Switch case
คาสั่ง switch case เป็นอีกหนึ่งรูปแบบของโครงสร้างควบคุมแบบเลือกทา
คาสั่ง ในการเขียนโปรแกรมภาษาซี เป็นคาสั่งที่ใช้ทดสอบเงื่อนไขและมีทางเลือกของการ
ตัดสินใจหลายทาง คาสั่ง switch เป็นที่นิยม เพราะมีรูปแบบที่เข้าใจได้ง่าย สะดวกใน
การแก้ไขในกรณีที่มีการผิดพลาด คาสั่ง switch มีการทางานในแต่ละ case เป็นใน
ลักษณะที่เขียนผังงานได้ และรูปแบบคาสั่งได้ดังนี้
ผังงาน
นิพจน์ = ค่าคงที่1
จริง
คาสั่งชุดที่ 1
เท็จ
นิพจน์ = ค่าคงที่2
จริง
คาสั่งชุดที่ 2
เท็จ
...........
เท็จ
นิพจน์ = ค่าคงที่ n
จริง
คาสั่งชุดที่ n
เท็จ
มี default ?
จริง
คาสั่งใน default
ออกจากคาสั่ง
บทที่ 11 Switch case
หน้า 2
- 3. = C programming By…iamch❀mmy =
รูปแบบของคาสั่งเลือกทา กรณี switch case ในภาษาซี คือ
switch (นิพจน์)
{
caseค่าคงที่1 : คาสั่ง1;
caseค่าคงที่2 : คาสั่ง2;
⋮
caseค่าคงที่n : คาสั่งn;
default : คาสั่ง;
}
นิพจน์ และค่าคงที่ของนิพจน์ในแต่ละ case จะต้องเป็นชนิด จานวนเต็ม
และค่าคงที่ในแต่ละ case จะต้องมีค่าไม่ซ้ากัน
ถ้านิพจน์ มีค่าเท่ากับค่าคงที่ 1 แล้ว คาสั่ง 1 จะถูกประมวลผลเป็นลาดับแรก ตามด้วยคาสั่ง
2.. 3.. 4 เรียงลาดับต่อไปถึงคาสั่งของ default ตามลาดับ
ในกรณีที่นิพจน์ มีค่าเท่ากับ ค่าคงที่ 2 การประมวลผลจะเริ่มต้นที่คาสั่ง 2 ตามด้วยคาสั่ง
3.. 4.. 5 เรียงลาดับต่อไปถึงคาสั่งของ default ตามลาดับ
คาสั่ ง switch อาจไม่ มีกรณี default ได้ แต่ในกรณี ที่มี default และนิพจน์
มีค่าไม่ตรงกับค่าคงที่ใด ๆ เลย คาสั่งของกรณี default จะเป็นเพียงคาสั่งเดียวที่ถูกประมวลผลส่วน
ในกรณีที่ไม่มี default และนิพจน์มีค่าไม่ตรงกับค่าคงที่ ใด ๆ จะไม่มีคาสั่งใดเลยที่ถูกประมวลผล
บทที่ 11 Switch case
หน้า 3
- 4. = C programming By…iamch❀mmy =
ตัวอย่างรูปแบบการเขียน
switch (x)
นิพจน์
case 9 : printf("happyn");
ค่าคงที่
คาสั่ง
( การทางาน >> หากเรากาหนดค่า x ให้เท่ากับ 9 จะพิมพ์ข้อความว่า happy ออกทางหน้าจอ )
โค้ด
int x = 5;
switch (x) {
case 9: printf("9 9 9 9 9 9 9 9 9n");
case 8: printf(" 8 8 8 8 8 8 8 8n");
case 7: printf(" 7 7 7 7 7 7 7n");
case 6: printf(" 6 6 6 6 6 6n");
case 5: printf(" 5 5 5 5 5n");
case 4: printf(" 4 4 4 4n");
case 3: printf(" 3 3 3n");
case 2: printf("
2 2n");
case 1: printf("
1n");
default: printf("------------------n");
}
ผลลัพธ์คือ
บทที่ 11 Switch case
55555
4444
333
22
1
-----------------------
หน้า 4
- 5. = C programming By…iamch❀mmy =
กรณีนี้ x = 5 ก็เข้า case 5 จึงเริ่มพิมพ์ตัวเลข 5 (5 ตัว) และทาทุกบรรทัด
ลงมาเรื่อย ๆ ตามลาดับ จนถึง default คือ พิมพ์ ------------------ จึงหยุดการทางาน
โปรแกรมจะค้นหาว่า case ไหนที่ตรงกับเงื่อนไขที่ใส่ไป
และจะทาจากคาสั่งนั้นลงมาจนถึงคาสั่ง default นั่นเอง
โดยปกติแล้ว เรามักจะใช้ switch case เพื่อเลือกทาคาสั่งใด คาสั่งหนึ่ง
แต่จากตัวอย่างจะเห็นว่า switch case จะเลือกคาสั่งเริ่มต้น และทาทุกคาสั่งไปจนจบจึงให้
ใส่ คาสั่ง break; ต่อท้ายคาสั่งใน case ต่าง ๆ เพื่อให้หยุดการกระทาที่ตาแหน่งใดตาแหน่งหนึ่ง
เท่านั้น (ไม่ทาทุกคาสั่งไปจนจบ) เช่น
ตัวอย่าง การเขียนคาสั่งแบบเลือกทาคาสั่ง (switch case)
บทที่ 11 Switch case
หน้า 5
- 6. = C programming By…iamch❀mmy =
การใส่ break; ในตอนจบ case เป็นการสั่งให้หยุดทางานในส่วนของ switch case นั้น
ทันที เช่น ถ้าค่า x เป็น 1 จะพิมพ์คาว่า One ออกมาทางจอภาพและหยุดการทางานทันที
ถ้า x เป็น 2 จะพิมพ์คาว่า Two ออกมาทางจอภาพ และหยุดการทางานทันที และหาก x ไม่ใช่ทั้ง 1
และ 2 จะพิมพ์คาว่า Not One and Two ออกมาทางจอภาพและหยุดการทางานทันที เช่นกัน
เพือน ๆ ลองนาโค้ดโปรแกรมในตัวอย่าง
่
ไปใช้ในโปรแกรม Dev-C++ ดูนะ
เมือเข้าใจแล้วก็เข้าไปทาแบบฝึกหัดเลย
่
คาศัพท์ภาษาอังกฤษน่ารู้ประจาบทที่ 11
ที่
คาศัพท์
คาอ่าน
ความหมายที่เกี่ยวข้องกับภาษาซี
1
break
เบรค
พัก หยุด
2
case
เคส
กรณี
3
switch
สวิตช
สลับ เปลี่ยน เปิด-ปิด
++ จบบทที่ 11 ++
บทที่ 11 Switch case
หน้า 6