เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง 30244
                                              ใบความรู้ที่ 13.1
                                          เรื่อง ฟังก์ชัน switch

ผลการเรียนรู้ที่คาดหวัง
    1. อธิบายการใช้ฟังก์ชัน switch ในการตรวจสอบเงื่อนไขได้
    2. เขียนผังงานแสดงการตรวจสอบเงื่อนไขของฟังก์ชัน switch ได้

        ในส่วนของฟังก์ชัน switch จะทาการตรวจสอบตัวแปรว่ามีค่าเท่ากับ case ใด ถ้าตรงกับ case ใดก็จะ
ทางานตามประโยคคาสั่งของ case นั้น การเปรียบเทียบของฟังก์ชัน switch ไม่สามารถเปรียบเทียบค่ามากกว่า
น้อยกว่าเหมือนฟังก์ชัน if ได้ และที่สาคัญตัวแปรที่นามาใช้กับฟังก์ชัน switch จะต้องเป็นข้อมูลชนิดเลขจานวน
เต็มหรือตัวอักษรเท่านั้น ดังนั้น a1, a2 และ a3 อาจจะเป็นค่าคงที่ ตัวอักษร หรือตัวแปรก็ได้ โดยทั่วไปฟังก์ชัน
switch นิยมใช้ในการตรวจสอบเงื่อนไข จานวนหลาย ๆ เงื่อนไขเพราะถ้าใช้ฟังก์ชัน if จะทาให้เกิดความยุ่งยากได้

รูปแบบ switch(ตัวแปร)
            {
                case a1;
                     ประโยคคาสั่ง 1;
                     break;
                case a2;
                     ประโยคคาสั่ง 2;
                      break;
                 case a3;
                      ประโยคคาสั่ง 3;
                      break;
                 default;
                      ประโยคคาสั่ง ;
              }

          ฟังก์ชัน switch จะทาการตรวจสอบเงื่อนไข case a1 ว่าถูกต้องตรงกับเงื่อนไขหรือไม่ ถ้าตรงตามเงื่อนไข
จะทางานตามประโยคคาสั่งชุดที่ 1 ในกรณีที่ไม่ตรงกับ case a1 ก็จะทา                     การตรวจสอบเงื่อนไข
ไปจนถึง case สุดท้าย ถ้าไม่ตรงกับ case ใดเลย โปรแกรมจะไปทางานตามประโยคคาสั่งชุดที่ 4 ซึ่งเป็นประโยค
คาสั่งที่อยู่หลัง default :




     รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์)
                                  http://comkrutae.wordpress.com
เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง 30244
ตัวอย่างโปรแกรม การใช้ฟังก์ชัน swich ตรวจสอบเงื่อนไขของโปรแกรมบวก ลบ คูณ และหาร

                        ตัวเลข 2 จานวน
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main(void)
{
       int choice; /*ประกาศตัวแปร choice เป็นชนิดข้อมูลแบบ integer*/
       float num1,num2; /*ประกาศตัวแปร num1,num2 เป็นชนิดเลขทศนิยม*/
       clrscr()
       printf(“Please Select Choicen”);
       printf(“1. Program Additionn”); /*เมนูที่ 1 โปรแกรมบวก*/
       printf(“2. Program Subtractionn”); /*เมนูที่ 2 โปรแกรมลบ*/
       printf(“3. Program Multifacationn”); /*เมนูที่ 3 โปรแกรมคูณ*/
       printf(“4. Program Divisionn”); /*เมนูที่ 4 โปรแกรมหาร*/
       printf(“0. Exit Programn”); /*เมนูที่ 0 ออกจากโปรแกรม*/
       scanf(“%d,&choice); /*รับข้อมูลเป็นเลขจานวนเต็มแล้วนาไปเก็บในตัวแปร choice*/
       switch(choice) /*ใช้ฟังก์ชัน swich ตรวจสอบเงื่อนไข*/
       case 0:exit(0); /*ถ้าเป็น case 0 ให้ออกจากโปรแกรม*/
       printf(“Enter number 1=”); /*แสดงข้อความให้ป้อนตัวเลขตัวที่ 1*/
       printf(“%f,&num1); /*รับค่าตัวเลขแล้วนาไปเก็บในตัวแปร num1*/
       printf(“Enter number 2=”); /*แสดงข้อความให้ป้อนตัวเลขตัวที่ 2*/
       printf(“%f,&num2); /*รับค่าตัวเลขแล้วนาไปเก็บในตัวแปร num2*/
       switch(choice)
           {
               case 1:printf(“%.2f+%.2f=%.2fn”,num1,num2,num1+num2);break;
               case 2:printf(“%.2f-%.2f=%.2fn”,num1,num2,num1-num2);break;
               case 3:printf(“%.2f*%.2f=%.2fn”,num1,num2,num1*num2);break;
               case 4:printf(“%.2f/%.2f=%.2fn”,num1,num2,num1/num2);break;
               default:printf(“Please select only program 1-4n”);
             }
       getch();
}




      รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์)
                                   http://comkrutae.wordpress.com
เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง 30244
การทางานของโปรแกรม

          เมื่อรันโปรแกรมเครื่องจะแสดงเมนูหลักของโปแกรม บวก ลบ คูณ และหาร พร้ อมทั้งข้อความ Please
Select Choice เพื่อให้เลือกรายการเมนู ให้ป้อนตัวเลข 1 เพื่อเลือกโปรแกรมบวก, 2 เลือกโปรแกรมลบ, 3 เลือก
โปรแกรมคูณ, 4 เลือกโปรแกรมหาร ในกรณีที่เลือกหมายเลข 1,2,3 หรือ 4 โปรแกรมจะให้ป้อนตัวเลข 2 จานวน
เพื่อนาไปคานวณ และถ้าเลือก 0 โปรแกรมจะใช้ฟังก์ชัน exit(0) ในการออกจากโปรแกรม แต่ถ้าเลือกหมายเลขที่
ไม่ใช่ 0,1,2,3 และ4 จะแสดงข้อความ Please select only program 1-4 หมายความว่าให้เลือกเฉพาะ
หมายเลข 1-4 เท่านั้น




     รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์)
                                http://comkrutae.wordpress.com
เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง 30244
                                                ใบความรู้ที่ 13.2
                                              เรื่อง ฟังก์ชัน goto

ผลการเรียนรู้ที่คาดหวัง - อธิบายการใช้ฟังก์ชัน goto ในการตรวจสอบเงื่อนไขได้

           ฟังก์ชัน goto สั่งให้คอมพิวเตอร์ไปทางานตามประโยคคาสั่งหรือชื่อที่กาหนดขึ้นโดยไม่มีเงื่อนไขใดๆ

รูปแบบ          goto ชื่อที่กาหนด;

ตัวอย่าง         loop:     ประโยคคาสั่ง 1;
                              ประโยคคาสั่ง 2;
                              ประโยคคาสั่ง 3;
                                   |
                                   |
                              ประโยคคาสั่ง n;
                   Goto loop;
                              ประโยคคาสั่ง n;

ตัวอย่างโปรแกรม การใช้ฟังก์ชัน goto สั่งให้คอมพิวเตอร์ไปทางานยังบรรทัดที่กาหนด ใน
                โปรแกรม บวก ลบ คูณ และหาร ตัวเลข 2 จานวน
           #include<stdio.h>
           #include<conio.h>
           #include<stdlib.h>
           void main(void)
           {
               int choice;
               float num1,num2;
               clrscr();
               loop: printf(“n”); /*เมื่อพบชื่อ loop จะกลับมาทางานที่บรรทัดนี้*/
               printf(“Main Menun”);
               printf(“1. Program Additionn”);
               printf(“2. Program Subtractionn”);
               printf(“3. Program Multiplicationn”);
               printf(“4. Program Divisionn”);

     รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์)
                                     http://comkrutae.wordpress.com
เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง 30244
            printf(“0. Exit Programn”);
            printf(“====================n”);
            printf("Please select choice (0-4) : ");
            scanf(“%d”,&choice);
            switch(choice)
                 {
                     case 0:exit(0);
                 }
            printf(“Enter number 1 =”);
            scanf(“%f”,&num1);
            printf(“Enter number 2 =”);
            scanf(“%f”,&num2);
            switch(choice)
                 {
                      case 1:printf(“%.2f+%.2f=%.2fn”,num1,num2,num1+num2);break;
                      case 2:printf(“%.2f-%.2f=%.2fn”,num1,num2,num1-num2);break;
                      case 3:printf(“%.2f*%.2f=%.2fn”,num1,num2,num1*num2);break;
                      case 4:printf(“%.2f/%.2f=%.2fn”,num1,num2,num1/num2);break;
                   }
            goto loop; /*ให้ไปทางานในบรรทัดที่ชื่อ loop*/
            getch();
       }
การทางานของโปรแกรม
          เมื่อรันโปรแกรมเครื่องจะแสดงเมนูหลัก (Main Menu) ให้เลือก 4 เมนู พร้อมกับข้อความ Please
select choice เพื่อให้เลือกรายการเมนู ให้ป้อนตัวเลข 1 เพื่อเลือกโปรแกรมบวก 2 เลือกโปรแกรมลบ 3 เลือก
โปรแกรมคูณ, 4 เลือกโปรแกรมหาร ในกรณีที่เลือกหมายเลข 1,2,3 หรือ 4 โปรแกรมจะให้ป้อนตัวเลข 2 จานวน
เพื่อนาไปคานวณ และถ้าเลือก 0 โปรแกรมจะใช้ฟังก์ชัน exit(0) ในการออกจากโปรแกรม แต่ถ้าเลือกหมายเลขที่
ไม่ใช่ 0,1,2,3 และ4 จะแสดงข้อความ Please select only program 0-4 หมายความว่าให้เลือกเฉพาะ
หมายเลข 0-4 เท่านั้น โปรแกรมนี้สามารถทางานได้หลายครั้งเพราะมีฟังก์ชัน goto สั่งให้ทางานในบรรทัด loop
คล้ายกับการวนรอบการทางานได้ แต่ถ้าต้องการออกโปรแกรม ก็เลือกป้อนหมายเลข 0 ก็จะสามารถออกจาก
โปรแกรมได้




     รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์)
                                http://comkrutae.wordpress.com

ฟังก์ชั่น Switch

  • 1.
    เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง30244 ใบความรู้ที่ 13.1 เรื่อง ฟังก์ชัน switch ผลการเรียนรู้ที่คาดหวัง 1. อธิบายการใช้ฟังก์ชัน switch ในการตรวจสอบเงื่อนไขได้ 2. เขียนผังงานแสดงการตรวจสอบเงื่อนไขของฟังก์ชัน switch ได้ ในส่วนของฟังก์ชัน switch จะทาการตรวจสอบตัวแปรว่ามีค่าเท่ากับ case ใด ถ้าตรงกับ case ใดก็จะ ทางานตามประโยคคาสั่งของ case นั้น การเปรียบเทียบของฟังก์ชัน switch ไม่สามารถเปรียบเทียบค่ามากกว่า น้อยกว่าเหมือนฟังก์ชัน if ได้ และที่สาคัญตัวแปรที่นามาใช้กับฟังก์ชัน switch จะต้องเป็นข้อมูลชนิดเลขจานวน เต็มหรือตัวอักษรเท่านั้น ดังนั้น a1, a2 และ a3 อาจจะเป็นค่าคงที่ ตัวอักษร หรือตัวแปรก็ได้ โดยทั่วไปฟังก์ชัน switch นิยมใช้ในการตรวจสอบเงื่อนไข จานวนหลาย ๆ เงื่อนไขเพราะถ้าใช้ฟังก์ชัน if จะทาให้เกิดความยุ่งยากได้ รูปแบบ switch(ตัวแปร) { case a1; ประโยคคาสั่ง 1; break; case a2; ประโยคคาสั่ง 2; break; case a3; ประโยคคาสั่ง 3; break; default; ประโยคคาสั่ง ; } ฟังก์ชัน switch จะทาการตรวจสอบเงื่อนไข case a1 ว่าถูกต้องตรงกับเงื่อนไขหรือไม่ ถ้าตรงตามเงื่อนไข จะทางานตามประโยคคาสั่งชุดที่ 1 ในกรณีที่ไม่ตรงกับ case a1 ก็จะทา การตรวจสอบเงื่อนไข ไปจนถึง case สุดท้าย ถ้าไม่ตรงกับ case ใดเลย โปรแกรมจะไปทางานตามประโยคคาสั่งชุดที่ 4 ซึ่งเป็นประโยค คาสั่งที่อยู่หลัง default : รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์) http://comkrutae.wordpress.com
  • 2.
    เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง30244 ตัวอย่างโปรแกรม การใช้ฟังก์ชัน swich ตรวจสอบเงื่อนไขของโปรแกรมบวก ลบ คูณ และหาร ตัวเลข 2 จานวน #include<stdio.h> #include<conio.h> #include<stdlib.h> void main(void) { int choice; /*ประกาศตัวแปร choice เป็นชนิดข้อมูลแบบ integer*/ float num1,num2; /*ประกาศตัวแปร num1,num2 เป็นชนิดเลขทศนิยม*/ clrscr() printf(“Please Select Choicen”); printf(“1. Program Additionn”); /*เมนูที่ 1 โปรแกรมบวก*/ printf(“2. Program Subtractionn”); /*เมนูที่ 2 โปรแกรมลบ*/ printf(“3. Program Multifacationn”); /*เมนูที่ 3 โปรแกรมคูณ*/ printf(“4. Program Divisionn”); /*เมนูที่ 4 โปรแกรมหาร*/ printf(“0. Exit Programn”); /*เมนูที่ 0 ออกจากโปรแกรม*/ scanf(“%d,&choice); /*รับข้อมูลเป็นเลขจานวนเต็มแล้วนาไปเก็บในตัวแปร choice*/ switch(choice) /*ใช้ฟังก์ชัน swich ตรวจสอบเงื่อนไข*/ case 0:exit(0); /*ถ้าเป็น case 0 ให้ออกจากโปรแกรม*/ printf(“Enter number 1=”); /*แสดงข้อความให้ป้อนตัวเลขตัวที่ 1*/ printf(“%f,&num1); /*รับค่าตัวเลขแล้วนาไปเก็บในตัวแปร num1*/ printf(“Enter number 2=”); /*แสดงข้อความให้ป้อนตัวเลขตัวที่ 2*/ printf(“%f,&num2); /*รับค่าตัวเลขแล้วนาไปเก็บในตัวแปร num2*/ switch(choice) { case 1:printf(“%.2f+%.2f=%.2fn”,num1,num2,num1+num2);break; case 2:printf(“%.2f-%.2f=%.2fn”,num1,num2,num1-num2);break; case 3:printf(“%.2f*%.2f=%.2fn”,num1,num2,num1*num2);break; case 4:printf(“%.2f/%.2f=%.2fn”,num1,num2,num1/num2);break; default:printf(“Please select only program 1-4n”); } getch(); } รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์) http://comkrutae.wordpress.com
  • 3.
    เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง30244 การทางานของโปรแกรม เมื่อรันโปรแกรมเครื่องจะแสดงเมนูหลักของโปแกรม บวก ลบ คูณ และหาร พร้ อมทั้งข้อความ Please Select Choice เพื่อให้เลือกรายการเมนู ให้ป้อนตัวเลข 1 เพื่อเลือกโปรแกรมบวก, 2 เลือกโปรแกรมลบ, 3 เลือก โปรแกรมคูณ, 4 เลือกโปรแกรมหาร ในกรณีที่เลือกหมายเลข 1,2,3 หรือ 4 โปรแกรมจะให้ป้อนตัวเลข 2 จานวน เพื่อนาไปคานวณ และถ้าเลือก 0 โปรแกรมจะใช้ฟังก์ชัน exit(0) ในการออกจากโปรแกรม แต่ถ้าเลือกหมายเลขที่ ไม่ใช่ 0,1,2,3 และ4 จะแสดงข้อความ Please select only program 1-4 หมายความว่าให้เลือกเฉพาะ หมายเลข 1-4 เท่านั้น รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์) http://comkrutae.wordpress.com
  • 4.
    เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง30244 ใบความรู้ที่ 13.2 เรื่อง ฟังก์ชัน goto ผลการเรียนรู้ที่คาดหวัง - อธิบายการใช้ฟังก์ชัน goto ในการตรวจสอบเงื่อนไขได้ ฟังก์ชัน goto สั่งให้คอมพิวเตอร์ไปทางานตามประโยคคาสั่งหรือชื่อที่กาหนดขึ้นโดยไม่มีเงื่อนไขใดๆ รูปแบบ goto ชื่อที่กาหนด; ตัวอย่าง loop: ประโยคคาสั่ง 1; ประโยคคาสั่ง 2; ประโยคคาสั่ง 3; | | ประโยคคาสั่ง n; Goto loop; ประโยคคาสั่ง n; ตัวอย่างโปรแกรม การใช้ฟังก์ชัน goto สั่งให้คอมพิวเตอร์ไปทางานยังบรรทัดที่กาหนด ใน โปรแกรม บวก ลบ คูณ และหาร ตัวเลข 2 จานวน #include<stdio.h> #include<conio.h> #include<stdlib.h> void main(void) { int choice; float num1,num2; clrscr(); loop: printf(“n”); /*เมื่อพบชื่อ loop จะกลับมาทางานที่บรรทัดนี้*/ printf(“Main Menun”); printf(“1. Program Additionn”); printf(“2. Program Subtractionn”); printf(“3. Program Multiplicationn”); printf(“4. Program Divisionn”); รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์) http://comkrutae.wordpress.com
  • 5.
    เอกสารประกอบการเรียนรายวิชา การเขียนโปรแกรมภาษาซีเบื้องต้น ง30244 printf(“0. Exit Programn”); printf(“====================n”); printf("Please select choice (0-4) : "); scanf(“%d”,&choice); switch(choice) { case 0:exit(0); } printf(“Enter number 1 =”); scanf(“%f”,&num1); printf(“Enter number 2 =”); scanf(“%f”,&num2); switch(choice) { case 1:printf(“%.2f+%.2f=%.2fn”,num1,num2,num1+num2);break; case 2:printf(“%.2f-%.2f=%.2fn”,num1,num2,num1-num2);break; case 3:printf(“%.2f*%.2f=%.2fn”,num1,num2,num1*num2);break; case 4:printf(“%.2f/%.2f=%.2fn”,num1,num2,num1/num2);break; } goto loop; /*ให้ไปทางานในบรรทัดที่ชื่อ loop*/ getch(); } การทางานของโปรแกรม เมื่อรันโปรแกรมเครื่องจะแสดงเมนูหลัก (Main Menu) ให้เลือก 4 เมนู พร้อมกับข้อความ Please select choice เพื่อให้เลือกรายการเมนู ให้ป้อนตัวเลข 1 เพื่อเลือกโปรแกรมบวก 2 เลือกโปรแกรมลบ 3 เลือก โปรแกรมคูณ, 4 เลือกโปรแกรมหาร ในกรณีที่เลือกหมายเลข 1,2,3 หรือ 4 โปรแกรมจะให้ป้อนตัวเลข 2 จานวน เพื่อนาไปคานวณ และถ้าเลือก 0 โปรแกรมจะใช้ฟังก์ชัน exit(0) ในการออกจากโปรแกรม แต่ถ้าเลือกหมายเลขที่ ไม่ใช่ 0,1,2,3 และ4 จะแสดงข้อความ Please select only program 0-4 หมายความว่าให้เลือกเฉพาะ หมายเลข 0-4 เท่านั้น โปรแกรมนี้สามารถทางานได้หลายครั้งเพราะมีฟังก์ชัน goto สั่งให้ทางานในบรรทัด loop คล้ายกับการวนรอบการทางานได้ แต่ถ้าต้องการออกโปรแกรม ก็เลือกป้อนหมายเลข 0 ก็จะสามารถออกจาก โปรแกรมได้ รวบรวมโดย ครู เทวัญ ภูพานทอง ครู คศ. 1 โรงเรี ยนนามนพิทยาคม สพม. 24 (กาฬสิ นธุ์) http://comkrutae.wordpress.com