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;
                                 }
   140   141   142   143   144   145   146   147   148   149   150