เงื่อนไข(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) |