Page 70 - การพัฒานาหนังสืออิเล็กทรอนิกส์เรื่องวิวัฒนาการภาษาของคอมพิวเตอร์
P. 70
�
หน่วยที5 คาสั�งควบคุมแบบทางเลือก 64 หน่วยที5 คาสั�งควบคุมแบบทางเลือก 65
ํ
�
ํ
......................................................................................................................................................... .........................................................................................................................................................
5. คำาสั่ง switch ตัวอย่าง 1 //Program: Switch.c
----------------------------------------------------------------- 2 3 #include <stdio.h>
รูปแบบของคำาสั่ง switch เป็นดังนี้ 4 5
6 void main() {
7 switch (getchar()) {
switch (นิพจน์) { 8 9 case '9' : printf("9 9 8 9 8 9 8 9 8 9 8 9 8 9 8\n");
9\n");
case '8' : printf(" 8
case ค่าคงที่1: คำาสั่ง1; 10 case '7' : printf(" 7 6 7 6 7 6 7 6 7 6 7 6\n");
7\n");
11
case '6' : printf("
case ค่าคงที่2: คำาสั่ง2; 12 case '5' : printf(" 5 4 5 4 5 4 5 4\n");
5\n");
13
case '4' : printf("
... 14 case '3' : printf(" 3 2 3 2\n");
3\n");
15
case '2' : printf("
case ค่าคงที่n: คำาสั่งn; 16 case '1' : printf(" 1\n");
17
default : คำาสั่ง; 18 default : printf("-------------------------\n");
19
}
} 20 getch();
21
นิพจน์ และ ค่าคงที่ ของนิพจน์ในแต่ละ 22 }
case จะต้องเป็นชนิดจำานวนเต็ม และมีค่า ผลลัพธ์ คือ
ไม่ซ้ำากัน
ถ้า นิพจน์ มีค่าเท่ากับ ค่าคงที่1 แล้ว 5 5 5 5 5 5
คำาสั่ง1 จะถูกประมวลผลเป็นลำาดับแรก 4 4 4 4
3 3 3
2 2
ตามด้วย คำาสั่ง2 จนกระทั่งถึง คำาสั่ง ของ 1
-------------------------
default ตามลำาดับ
ในกรณีที่ นิพจน์ มีค่าเท่ากับ ค่าคงที่2 ผลลัพธ์ข้างต้นเป็นผลจากการป้อนอักขระ 5 ให้โปรแกรม นั่น คือ ในกรณีที่
การประมวลผลจะเริ่มต้นที่ คำาสั่ง2 จน อักขระที่รับค่าเข้ามามีค่าเป็น 1 – 9 โปรแกรมจะประมวลผลฟังก์ชัน printf() ของ
กระทั่งถึง คำาสั่ง ของ default ตามลำาดับ case ที่ตรงกันและตรงกัน และน้อยกว่าจนครบทุกกรณี และในกรณีที่อักขระที่รับ
คำาสั่ง switch อาจไม่มีกรณี default ได้ เข้ามาเป็นอักขระอื่น ๆ โปรแกรมจะประมวลผลฟังก์ชัน printf() ในกรณี default เพียง
แต่ในกรณีที่มี default และ นิพจน์ มีค่าไม่ เท่านั้น
ตรงกับ ค่าคงที่ ใดๆ เลย แล้ว คำาสั่ง ของ ในกรณีที่ต้องการให้คำาสั่งของ case ใด case หนึ่งเท่านั้นถูกประมวลผล นักเขียน
กรณี default จะเป็นเพียงคำาสั่งเดียวที่ถูก โปรแกรมจะต้องเพิ่มคำาสั่ง break เป็นคำาสั่งสุดท้ายในแต่ละ case
ผังงานของคำาสั่ง switch ประมวลผล