top of page
222.gif

หน่วยการเรียนรู้ที่ 5

คำสั่งควบคุม

จุดประสงค์การเรียนรู้

1. ใช้คำสั่ง goto ควบคุมให้ไปทำงานยังคำสั่งที่ต้องการได้

2. ใช้คำสั่ง if  ในการตรวจสอบเงื่อนไขได้

3. ใช้คำสั่ง switch เลือกไปทำงานที่ต้องการได้

4. ใช้คำสั่ง while ควบคุมการทำงานแบบวนซ้ำได้

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

5.1  คำสั่ง 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 ก็จะสามารถออกจากโปรแกรมได้

5.2  คำสั่ง if

          คำสั่งควบคุมการทำงานที่เป็นพื้นฐานที่สุดในภาษา C นั้นก็คือคำสั่ง if มันใช้สำหรับสร้างเงื่อนไขให้โปรแกรมทำงานตามที่ต้องการ ยกตัวอย่างเช่น ถ้าหากวันนี้ฝนไม่ตก คุณจะออกไปเที่ยวข้างนอก นี่เป็นการตัดสินใจที่เกิดขึ้นและถูกนำแนวคิดมาใช้ในการเขียนโปรแกรม นี่เป็นรูปแบบของการใช้งานคำสั่ง if ในภาษา C

if (expression)

{ // statements }

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

         

          ในการทำงานของโปรแกรมเป็นการใช้คำสั่ง if เพื่อเปรียบเงื่อนไขต่างๆ โดยแต่ละบล็อคคำสั่งจะทำงานเมื่อเงื่อนไขเป็นจริงเท่านั้น บล็อคแรกจะทำงานเพราะว่า 10 มีค่าเท่ากับ 10 บล็อคที่สองจะไม่ทำงานเพราะว่า 3 ไม่น้อยว่า 1 และสำหรับบล็อคสุดท้ายจะทำงาน เพราะว่า a เป็นจำนวนคู่

และนี่เป็นผลลัพธ์ของโปรแกรมเมื่อรัน คุณจะเห็นว่ามีแค่ block 1 และ 3 ที่แสดงผลเพราะว่าเงื่อนไขของ if เป็นจริง

block 1 is executed block 3 is executed

68f5d45c-7003-4a7a-8e50-a6a7ab30b215_edited.jpg
aaeded3f-f077-45ab-b5b4-84c1150414c0_edited.jpg

          จากโปรแกรม ครั้งแรกลองกรอกตัวเลข 15 จะได้ผลลัธ์เป็น GOOD เพราะ 15 มีค่ามากกว่า 10
เป็นจริงตามเงื่อนไข จึงแสดงคำสั่งในวงเล็บปีกกาหลังเงื่อนไขออกมา แต่ในการทดลองรันโปรแกรมครั้งที่สอง
กรอกตัวเลขเป็น 3 จะพบว่าโปรแกรมไม่ได้แสดงผลลัพธ์อะไรออกมา เนื่องจาก 3 มีค่าน้อยกว่า 10 ซึ่งก็คือเงื่อนไข
ไม่เป็นจริง

5.3  คำสั่ง switch

          จากโปรแกรม ครั้งแรกลองกรอกตัวเลข 15 จะได้ผลลัธ์เป็น GOOD เพราะ 15 มีค่ามากกว่า 10
เป็นจริงตามเงื่อนไข จึงแสดงคำสั่งในวงเล็บปีกกาหลังเงื่อนไขออกมา แต่ในการทดลองรันโปรแกรมครั้งที่สอง
กรอกตัวเลขเป็น 3 จะพบว่าโปรแกรมไม่ได้แสดงผลลัพธ์อะไรออกมา เนื่องจาก 3 มีค่าน้อยกว่า 10 ซึ่งก็คือเงื่อนไข
ไม่เป็นจริง

ในส่วนของฟังก์ชัน 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 เท่านั้น

5.3  คำสั่ง while

          คำสั่ง while เป็นคำสั่งที่ใช้ควบคุมการวนรอบของโปรแกรม โดยจะมีเงื่อนไข(Condition) เป็นตัวตรวจสอบว่าหากเงื่อนไขที่กำหนดไว้เป็นจริงก็จะทำงานตามคำสั่ง หรือชุดคำสั่งที่กำหนดไว้แล้วก็จะวนไปตรวจสอบเงื่อนไขที่กำหนดไว้อีกครั้ง หากเงื่อนไขยังคงเป็นจริงก็จะทำงานในรอบต่อไปอีก หากเป็นเท็จก็จะออกจากการวนรอบของ while เพื่อทำงานยังคำสั่งต่อไป 

5.jpg
1.png

วิดีโอการสอน

VR Goggles
bottom of page