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                    ประมวลผล
   65   66   67   68   69   70   71   72   73   74   75