สถิติผู้เข้าเยี่ยมชมเว็บไซต์

 

ฟังก์ชัน switch และฟังก์ชัน goto

 

ฟังก์ชัน 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 :


ตัวอย่างโปรแกรม  การใช้ฟังก์ชัน switch ตรวจสอบเงื่อนไขของโปรแกรมบวก ลบ คูณ และหาร ตัวเลข 2 จำนวน

 

 

 #include<stdio.h>
 #include<conio.h>
 #include<stdlib.h>
 main( )
 { 
          int choice;                               /*ประกาศตัวแปร choice เป็นชนิดข้อมูลแบบ integer*/
          float num1,num2;                                /*ประกาศตัวแปร num1,num2 เป็นชนิดเลขทศนิยม*/
          printf(“Please Select Choice\n”);
          printf(“1. Program Addition\n”);                    /*เมนูที่ 1 โปรแกรมบวก*/
          printf(“2. Program Subtraction\n”);               /*เมนูที่ 2 โปรแกรมลบ*/
          printf(“3. Program Multifacation\n”);           /*เมนูที่ 3 โปรแกรมคูณ*/
          printf(“4. Program Division\n”);                     /*เมนูที่ 4 โปรแกรมหาร*/
          printf(“0. Exit Program\n”);                             /*เมนูที่ 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=%.2f\n”,num1,num2,num1+num2);break;
                   case 2:printf(“%.2f-%.2f=%.2f\n”,num1,num2,num1-num2);break;
                   case 3:printf(“%.2f*%.2f=%.2f\n”,num1,num2,num1*num2);break;
                   case 4:printf(“%.2f/%.2f=%.2f\n”,num1,num2,num1/num2);break;
                   default:printf(“Please select only program 1-4\n”);
                }
          getch();
 }


การทำงานของโปรแกรม
        เมื่อรันโปรแกรมเครื่องจะแสดงเมนูหลักของโปแกรม บวก ลบ คูณ และหาร พร้อมทั้งข้อความ 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 เท่านั้น

 

 

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

 

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


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

ตัวอย่างโปรแกรม การใช้ฟังก์ชัน goto สั่งให้คอมพิวเตอร์ไปทำงานยังบรรทัดที่กำหนด ใน  โปรแกรม บวก ลบ คูณ และหาร ตัวเลข 2 จำนวน

 #include<stdio.h>
 #include<conio.h>
 #include<stdlib.h>
 main()
 {
      int choice;
      float num1,num2;
      loop: printf(“\n”);      /*เมื่อพบชื่อ loop จะกลับมาทำงานที่บรรทัดนี้*/
      printf(“Main Menu\n”);
      printf(“1. Program Addition\n”);
      printf(“2. Program Subtraction\n”);
      printf(“3. Program Multiplication\n”);
      printf(“4. Program Division\n”);
      printf(“0. Exit Program\n”);
      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=%.2f\n”,num1,num2,num1+num2);break;
                  case 2:printf(“%.2f-%.2f=%.2f\n”,num1,num2,num1-num2);break;
                  case 3:printf(“%.2f*%.2f=%.2f\n”,num1,num2,num1*num2);break;
                  case 4:printf(“%.2f/%.2f=%.2f\n”,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 ก็จะสามารถออกจากโปรแกรมได้