สอนเขียน C++ : สอนการใช้ประโยคคำสั่ง switch - #143

หน้าหลัก » บทเรียน » สอนเขียน C++ : สอนการใช้ประโยคคำสั่ง switch
เขียนโดย : ' จารย์ ด๋อย [ มหาเมพ ] มีผู้อ่าน 7123 คน

มีผู้อ่าน 5,000 คน มี ผู้เห็นด้วย 100 คน และ ผู้ไม่เห็นด้วย 0 คน
แก้ไขล่าสุดเมื่อ 31/01/2013 เวลา 15:00:25 น. (15 นาทีที่แล้ว)

สวัสดีครับ พบกันในบทความ สอนเขียน C++ กันอีกครั้งในหัวเรื่อง สอนการใช้ประโยคคำสั่ง switch คำสั่งนี้เป็นคำสั่งที่มีโครงสร้างเป็นแบบเลือกทำ (Selection) ซึ่งคำสั่ง switch ใช้กับกรณีมีการเลือกการทำงานหลายเส้นทาง (Multi-Way Selection) โดยมักจะนำมาใช้แทนคำสั่ง if ที่ซ้อนกันมากๆ ดังตัวอย่างครับ

 

int x = 0;

if (x == 0)

{

         cout << "X Case 0";

}

else

{

     if (x == 1)

     {

         cout << "X Case 1";

     }

     else

     {

          if (x == 2)

          {

              cout << "X Case 2";

          }

          else

          {

              cout << "X Case Not 0,1,2";

          }

     }

}

 

จะเห็นได้ว่ากรณีนี้การใช้คำสั่ง if การเขียน Code ก็จะยาวมากครับ ทั้ง เครื่องหมายปีกกา { } และ Code ทำให้ดูเยอะเกินไปครับนั่นเพราะว่า if นั้นรองรับกรณีได้เพียง 2 กรณี คือ จริงหรือเท็จเท่านั้น ดังนั้นถ้ากรณีที่เราต้องการตรวจสอบ (ตัวอย่างคือตรวจสอบว่า x เท่ากับ 0,1,2 หรือไม่) เราก็ต้องมี if ซ้อนๆ กันไปเรื่อยๆ จนครบทุกกรณี แต่ถ้าเราใช้ switch ก็จะลด การเขียน Code ลงได้ส่วนหนึ่งครับ

 

รูปแบบโครงสร้างคำสั่ง switch

 

switch ( นิพจน์ที่ใช้ทดสอบ )

{

        case ค่าคงที่ 1  : คำสั่ง 1;

                                 break; 

        case ค่าคงที่ 2  : คำสั่ง 2;

                                 break; 

        . . .

        case ค่าคงที่ N  : คำสั่ง N;

                                 break; 

        default           :  คำสั่ง;

}

 

คำอธิบายรูปแบบโครงสร้างคำสั่ง switch

 

นิพจน์ที่ใช้ทดสอบ คือ นิพจน์ (Expression) ที่จะใช้ในการตรวจสอบว่าค่านั้นตรงกับ ค่าคงที่ ไหน โดยนิพจน์นั้นเป็นได้ทั้ง ตัวแปร หรือ Function และต้องมีค่าเป็นตัวเลขจำนวนเต็มและตัวอักษรเท่านั้น เช่น int x , x จะนำไปใช้เป็น นิพจน์ที่ใช้ทดสอบ ได้เพราะเป็นตัวแปรตัวเลขจำนวนเต็ม เป็นต้น

 

ค่าคงที่ คือ ค่าที่จะถูกนำมาเทียบกับ นิพจน์ที่ใช้ทดสอบ โดยถ้าตรวจสอบแล้วตรงกัน ก็จะไปทำคำสั่งที่อยู่หลัง : และถ้าตรวจสอบทุกๆ ค่าคงที่ แล้วไม่มี case ไหนตรงเลยก็จะเข้าไปยัง default และทำ คำสั่ง หลัง : ของ default

 

คำสั่ง 1; คือ คำสั่งที่จะถูกทำเมื่อ นิพจน์ที่ใช้ทดสอบ เทียบกับ ค่าคงที่ แล้วตรงกันซึ่งคำสั่งนั้นมีคำสั่งเดียวหรือหลายๆ คำสั่งก็ได้ และเมื่อจบทุกคำสั่งแล้วจะต้องเขียน break; เพื่อเป็นตัวบอกว่าหมด case นี้แล้ว

 

และจากรูปแบบโครงสร้างคำสั่ง switch เราจะทำ if จากตัวอย่างมาเขียนได้ดังนี้ครับ

 

int x = 0;

switch (x)

{

   case 0 : cout << "X Case 0";

              break;

   case 1 : cout << "X Case 1";

              break;

   case 2 : cout << "X Case 2";

              break;

   default : cout << "X Case Not 0,1,2";

}

 

 

จากตัวอย่าง Souce Code สร้างตัวแปรชื่อ x เก็บข้อมูลประเภทจำนวนเต็ม (int) และตั้งค่าเริ่มต้นเป็น 0 จากนั้น ใช้ค่าในตัวแปร x เป็น นิพจน์ที่ใช้ทดสอบ ค่าในตัวแปร x ตอนนี้มีค่าเท่ากับ 0 ดังนั้น จึงเข้าที่ case 0 และทำคำสั่ง cout << "X Case 0"; และเจอ break; ก็จะจบการทำงานใน switch ครับลองไล่การทำงานจาก Flowchart ครับ

 

สอนเขียน C++ : สอนการใช้ประโยคคำสั่ง switch

 

หากต้องการความช่วยเหลือหรือปรึกษาเรื่องการเขียนโปรแกรมด้วยภาษา C++ ก็สามารถเข้าร่วม กลุ่มเรียน : มือใหม่หัดเขียน C++ ใน Facebook ได้นะครับ


หน้าหลัก » บทเรียน » สอนเขียน C++ : สอนการใช้ประโยคคำสั่ง switch

คำถามเกี่ยวกับบทความ
เมื่อคุณอ่านบทความนี้แล้ว หากคุณมีข้อสงสัยในบทความคุณสามารถเขียน " คำถาม " ที่คุณอยากรู้ เพื่อให้ผู้เขียนหรือบุคคลอื่นมาตอบข้อสงสัยของคุณได้

SOCIAL SHARE


คลิกที่นี่ เพื่อดูความเห็นเพิ่มเติม...
บทความที่เกี่ยวข้อง
"แบบฝึกหัด C++ สำหรับผู้เริ่มต้นเขียนโปรแกรมด้... " อ่าน : 977
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 12/04/2013 15:45:22
"โจทย์ฝึกเขียน Flowchart แบบผสมผสานโครงสร้างแบ... " อ่าน : 565
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 25/09/2013 17:53:12
"Structured Query Language ( SQL ) " อ่าน : 395
   โดย : อทิตา พวงสุนทร แก้ไขเมื่อ : 05/11/2013 13:34:33
"ลำดับและการรวมยอด(Sequences and Summations) " อ่าน : 273
   โดย : อทิตา พวงสุนทร แก้ไขเมื่อ : 25/11/2013 11:57:15
"มาเรียนรู้หลักการ OOP แบบง่ายๆ สำหรับมือใหม่ค... " อ่าน : 1274
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 21/05/2013 20:01:29
"CPU Schedulerมี2ประเภทคือpreemtiveกับnon-pree... " อ่าน : 278
   โดย : Suppalak Suwannawat แก้ไขเมื่อ : 30/10/2013 12:15:52
"บทความสอน C++ สำหรับผู้เริ่มต้น ด้วยโจทย์การเ... " อ่าน : 12645
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 25/07/2013 14:04:18
"C# บทความการสร้าง Message Box ยืนยันก่อนการออ... " อ่าน : 8090
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 13/02/2013 17:30:45
"วิธีแปลงค่าตัวแปรที่เก็บวันที่จาก Format yyyy... " อ่าน : 3400
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 24/01/2013 11:53:42
"วิธีการแปลงค่าทศนิยมให้เป็นจำนวนเต็มโดยไม่มีก... " อ่าน : 2937
   โดย : ' จารย์ ด๋อย แก้ไขเมื่อ : 13/03/2013 11:08:26
ค้นหาบทความ