คำสั่ง default ทำหน้าที่อะไร

เงื่อนไข(switch case)

          เงื่อนไข(switch case)เป็นเงื่อนไขเช่นเดียวกับ if-else แต่จะมีความเที่ยงตรงที่สูงกว่า และใช้ได้ค่อยข้างจำกัด โดยส่วนใหญ่แล้วจะใช้ในการควบคุมการแสดงผลทางเมาส์ และคีย์บอร์ด แต่ก็สามารถนำมาใช้เป็นเงื่อนไขเช่นเดียวกับ if-else ซึ่งการใช้นั้นจะต้องใช้ตามรูปแบบหรือ syntax ของมันครับ หากไม่ต้องกับรูปแบบแล้วเงื่อนไขก็จะใช้ไม่ได้หรือerror นั่นเองครับ การใช้ switch case นั้นนิยมใช้กับ main manu ครับ เพื่อที่จะได้เลือกใช้ฟังก์ชันย่อยๆต่อไป


รูปแบบการใช้งาน

switch ( ตัวแปร )

{

          case ' ตัวอักขระ ' :

                    สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง

                    break;

          case ค่าคงที่  :

                    สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นจริง

                    break;

          default : 

                    สิ่งที่ต้องการทำหากผลของเงื่อนไขเป็นเท็จ

}


อธิบายโปรแกรม 

          จะเห็นว่าค่าตัวแปรที่ใช้ในการเงื่อนไข จะอยู่หลัง switch  และเงื่อนไขจะอยู่หลัง case  ส่วนสิ่งที่จะทำหากผลของเงื่อนไขเป็นจริง อยู่ใต้เครื่องหมาย : สิ่งที่สำคัญที่สุดคือคำสั่ง break เพราะหากไม่ใส่คำสั่งนี้โปรแกรมจะทำงานต่อไปโดยแสดงผลให้เราดูเพียงไม่กี่วินาที ซึ่งในความเป็นจริงเราดูไม่ทันหรอกครับ เพราะเฉพาะใส่ไปซะ break เนี่ย  ส่วนdefault คือนอกเหนือจาก case อื่นๆที่กล่าวมาครับ หมายหมายเหมือนกับ else ครับ  อีกสิ่งที่แตกต่างกันคือเงื่อนไขครับ หากเป็นตัวอักขระให้ใส่เครื่องหมาย '...'  แต่ถ้าเป็นค่าคงที่ไม่ต้องใส่ครับ


เปรียบเทียบกับ if-else

switch case

 switch ( A )

          case  1  :

                   printf("Yes");

                   break;

          case  2  :

                   printf("No");

                   break;

          default : 

                   printf("Error");

}


if-else

if ( A == 1)

{

         printf("Yes");

}

 else if ( A == 2)                   

{        

         printf("No");

}                 

 else         

{      

         printf("Error");

}


ซึ่่งทั้งสองโปรแกรมนี้มีการประมวลผล และแสดงผลเหมือนกัน


--------------------------------------------------------------


ตัวอย่างการใช้งาน

1.ตัวอย่างแรกง่ายๆก่อนนะครับ

#include <stdio.h>

main()

{

  int A;

  printf("i = ");

    scanf("%d",&A);

  switch ( A )

  { 

                  case 1 :

                          printf("Yes");

                          break;

                  case 2 :

                          printf("No");

                          break;

                  default : 

                          printf("Error");

         }

         getch();

}


จะเห็นว่าเมื่อรับข้อมูลค่าตัวแปรA แล้วจากนั้นจะตรวจสอบเงื่อนไข หากตัวแปรA มีค่าเท่ากับ 1 จะแสดงผลทางหน้าจอคือ Yes หากตัวแปรA มีค่าเท่ากับ 2 จะแสดงผลทางหน้าจอคือ No และถ้าไม่ต้องกับเงื่อนไขใดๆเลย จะแสดงผลทางหน้าจอคือ Error

--------------------------------------------------------------


2.ตัวอย่างที่สองเริ่มยากขึ้นมานะครบนะครับ

#include <stdio.h>

main()

{

  char A;

  printf("Your grad : ");

  A=getchar();

  switch ( A )

  { 

           case 'a' :

                    printf("Excellent!");

                    break;

           case 'b' :

                    printf("Well!");

                    break;

          case 'c' :

                    printf("Good!");

                    break;

           case 'd' :

                    printf("So-so!");

                    break;

           case 'e' :

                    printf("Badly!");

                    break;

           case 'f' :

                    printf("Oh god!");

                    break;

           default : 

                    printf("Error");

}

       getch();

}

จะเห็นว่าเมื่อรับข้อมูลค่าตัวแปรA ที่เป็นตัวอักขระ แล้วจากนั้นจะตรวจสอบเงื่อนไข หากตัวแปรA มีค่าเท่ากับ a จะแสดงผลทางหน้าจอคือ Excellent! หากตัวแปรA มีค่าเท่ากับ b จะแสดงผลทางหน้าจอคือ Well! หากตัวแปรA มีค่าเท่ากับ c จะแสดงผลทางหน้าจอคือ Good!หากตัวแปรA มีค่าเท่ากับ d จะแสดงผลทางหน้าจอคือ So-so! หากตัวแปรA มีค่าเท่ากับ e จะแสดงผลทางหน้าจอคือ Badly! หากตัวแปรA มีค่าเท่ากับ f จะแสดงผลทางหน้าจอคือ Oh god! และถ้าไม่ต้องกับเงื่อนไขใดๆเลย จะแสดงผลทางหน้าจอคือ Error

--------------------------------------------------------------


แบบฝึกหัด (Exercise)


1. เขียนโปรแกรมที่ใช้รับค่าจากคีย์บอร์ด จำนวน1ครั้ง แล้วตรวจสอบเงื่อนไข ถ้าจำนวนนั้น เท่ากับ 7 ให้แสดงคำว่า Yes นอกจากนั้นให้แสดงคำว่า No