Page 70 - การพัฒนาการหนังสืออิเล็กทรอนิกส์เรื่องภาษาซี
P. 70

หน่วยที่ 5 คำาสั่งควบคุมแบบทางเลือก  64                    หน่วยที่ 5 คำาสั่งควบคุมแบบทางเลือก  65




 ..................................................................................................................................................  ..................................................................................................................................................
         ตัวอย่าง
 5. คำาสั่ง switch        1                        //Program: Switch.c



 --------------------------------------------------------------------------------------------------------------  2 3  #include <stdio.h>
  รูปแบบของคำาสั่ง switch เป็นดังนี้  4
                          5                            void main() {
                          6
                          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   7  7   7   7  7   7\n");
                          11          case '6' : printf("        6  6   6  6   6   6\n");
   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  3   3\n");
                          15               case '2' : printf("            2   2\n");
   case  ค่าคงที่n: คำาสั่งn;  16           case '1' : printf("             1\n");
                          17
   default  : คำาสั่ง;     นิพจน์ และ ค่าคงที่ ของนิพจน์ในแต่ละ  18  default : printf("-------------------------\n");
                          19
                                                               }
 }                        20
  case จะต้องเป็นชนิดจำานวนเต็ม และมีค่าไม่  21           getch();
                          22                                  }
 ซ้ำากัน


    ถ้า นิพจน์ มีค่าเท่ากับ ค่าคงที่1 แล้ว คำา  ผลลัพธ์ คือ

 สั่ง1 จะถูกประมวลผลเป็นลำาดับแรก ตามด้วย   5
                                     5  5  5  5  5
 คำาสั่ง2 จนกระทั่งถึง คำาสั่ง ของ default ตาม       4  4  4  4
                                       3  3  3
 ลำาดับ                                 2  2
                                         1
    ในกรณีที่ นิพจน์ มีค่าเท่ากับ ค่าคงที่2 การ  -------------------------

 ประมวลผลจะเริ่มต้นที่ คำาสั่ง2 จนกระทั่งถึง        ผลลัพธ์ข้างต้นเป็นผลจากการป้อนอักขระ 5 ให้โปรแกรม นั่น คือ ในกรณีที่อักขระที่

 คำาสั่ง ของ default ตามลำาดับ  รับค่าเข้ามามีค่าเป็น 1 – 9 โปรแกรมจะประมวลผลฟังก์ชัน printf() ของ case ที่ตรงกัน


    คำาสั่ง switch อาจไม่มีกรณี default ได้  และตรงกัน และน้อยกว่าจนครบทุกกรณี และในกรณีที่อักขระที่รับเข้ามาเป็นอักขระอื่น ๆ

 แต่ในกรณีที่มี default และ นิพจน์ มีค่าไม่  โปรแกรมจะประมวลผลฟังก์ชัน printf() ในกรณี default เพียงเท่านั้น

 ตรงกับ ค่าคงที่ ใดๆ เลย แล้ว คำาสั่ง ของกรณี     ในกรณีที่ต้องการให้คำาสั่งของ case ใด case หนึ่งเท่านั้นถูกประมวลผล นักเขียน


  default จะเป็นเพียงคำาสั่งเดียวที่ถูกประมวล  โปรแกรมจะต้องเพิ่มคำาสั่ง break เป็นคำาสั่งสุดท้ายในแต่ละ case

 ผล และในกรณีที่ไม่มี default และ นิพจน์ มี


 ผังงานของคำาสั่ง switch  ค่าไม่ตรงกับ ค่าคงที่ ใดๆจะไม่มีคำาสั่งใดเลยที่
 ถูกประมวลผล
   65   66   67   68   69   70   71   72   73   74   75