หัวข้อที่ 4

การวนรอบการทำงาน

ฟังก์ชัน while


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



การทำงานของโปรแกรม
  
       
  เริ่มจากทำการประกาศตัวแปร count เป็นข้อมูลชนิดเลขจำนวนเต็ม และทำการกำหนดให้ตัวแปรมีค่าเท่ากับ ทำการลบจอภาพ และใช้ฟังก์ชัน while ในการตรวจสอบเงื่อนไขโดยให้ทำงานในขณะที่ count มีค่าน้อยกว่าหรือเท่ากับ 12 ถ้าเงื่อนไขเป็นจริงให้แสดงค่าตัวแปร count ออกมา หลังจากนั้นจะทำการเพิ่มค่าตัวแปร count ขึ้นอีกหนึ่ง แล้ววนกลับไปทำการตรวจสอบเงื่อนไข จนกระทั่งเงื่อนไขเป็นเท็จ จึงจะมาทำงานตามคำสั่งที่อยู่หลังปีกกา





ฟังก์ชัน do_while

       เป็นฟังก์ชันที่ใช้ในการวนรอบการทำงานโดยจะทำงานตามประโยคคำสั่งภายในลูปก่อน
แล้วจึงทำการตรวจสอบเงื่อนไขถ้าเงื่อนไขเป็นจริงจะทำงานตามประโยคคำสั่งที่อยู่ภายในปีกกา
เมื่อทำงานเสร็จก็จะทำการตรวจสอบเงื่อนไขอีกครั้ง ถ้าเงื่อนไขเป็นจริงก็จะทำงานตามประโยคคำสั่งเหมือนเดิม
จะทำงานซ้ำเช่นนี้ไปจนกระทั่งเมื่อตรวจสอบเงื่อนไขแล้วพบว่าเงื่อนไขเป็นเท็จ ถ้าเงื่อนไขเป็นเท็จ โปรแกรมจะทำงานตามประโยคคำสั่งที่อยู่หลังฟังก์ชัน do_while (ในกรณีที่ประโยคคำสั่งภายในปีกกา
มีเพียงคำสั่งเดียวไม่ต้องใส่ปีกกาเปิดและปิดก็ได้)







การทำงานของโปรแกรม
  
        เริ่มจากทำการประกาศตัวแปร count เป็นข้อมูลชนิดเลขจำนวนเต็ม และทำการกำหนดให้ตัวแปรมีค่าเท่ากับ
ทำการลบจอภาพ และใช้ฟังก์ชัน do_while ในการตรวจสอบเงื่อนไขโดยโปรแกรมจะทำงานตามประโยคคำสั่ง
อย่างน้อยหนึ่งครั้ง สำหรับโปรแกรมนี้จะแสดงค่าตัวเลขที่เก็บอยู่ในตัวแปร count และจำทะการเพิ่มค่าของตัวแปร count ขึ้นอีกหนึ่ง หลังจากนั้นจะทำการตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะวนกลับขึ้นไปทำงานซ้ำ จนกว่าเงื่อนไขจะเป็นเท็จ จึงจะมาทำงานตามคำสั่งที่อยู่หลังฟังก์ชัน while





ฟังก์ชัน for

          
เป็นฟังก์ชันที่ใช้ในการวนรอบการทำงานโดยจะทำการกำหนดค่าให้กับตัวแปร แล้วทำการตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะทำงานตามประโยคคำสั่งภายในลูปแล้วทำการเพิ่มหรือลดค่าตัวแปรแล้วจึงทำการตรวจสอบเงื่อนไขอีกครั้งถ้าเงื่อนไขเป็นจริงจะทำงานตามประโยคคำสั่งที่อยู่ภายในปีกกาเมื่อทำงานเสร็จก็จะทำการตรวจสอบเงื่อนไขอีกครั้งถ้าเงื่อนไขเป็นจริงก็จะทำงานตามประโยคคำสั่งเหมือนเดิมจะทำงานซ้ำเช่นนี้ไปจนกระทั่งเมื่อตรวจสอบเงื่อนไขแล้วพบว่าเงื่อนไขเป็นเท็จโปรแกรมจะทำงานตามประโยคคำสั่งที่หลังปีกกาปิด(ในกรณีที่ประโยคคำสั่งภายในปีกกามีเพียง คำสั่งเดียวไม่ต้องใส่ปีกกาเปิดและปิดก็ได้)






การทำงานของโปรแกรม

        
 เริ่มจากทำการประกาศตัวแปร เป็นข้อมูลชนิดเลขจำนวนเต็ม และทำการกำหนดค่าให้ตัวแปรมีค่าเท่ากับ 1
ใช้ฟังก์ชัน for ในการตรวจสอบเงื่อนไขว่า i มีค่าน้อยกว่าหรือเท่ากับ 12 หรือไม่ ถ้าตรงตามเงื่อนไขก็จะแสดงตัวเลข
ที่เก็บอยู่ในตัวแปร i แล้วทำการเพิ่มค่าขึ้นอีก จากนั้นจะวนกลับขึ้นไปตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะทำงานซ้ำจนกว่าเงื่อนไขจะเป็นเท็จ จึงจะออกจากการวนรอบมาทำงานตามคำสั่ง getch();






ฟังก์ชัน break

       เมื่อโปรแกรมทำงานมาถึงยังบรรทัดที่มีฟังก์ชัน break จะทำการออกจากการวนรอบทันที ในกรณีที่มีการกำหนดให้โปรแกรมวนรอบโดยใช้ฟังก์ชัน while, do_while หรือ for โปรแกรมจะต้องทำงานตามเงื่อนไขจนกว่าจะเป็นจริง แต่ฟังก์ชัน break  จะทำให้โปรแกรมกระโดดออกจากลูปไปทำงานยังบรรทัดที่อยู่หลังปีกกาของลูปทันที

ตัวอย่างโปรแกรม   การใช้ฟังก์ชัน break ในการออกออกจากโปรแกรม

# include <stdio.h>
                  # include<conio.h>
# include<ctype.h>
                      void main(void)
                      {
                               int i=1;
                               char x,ans;
                               x='T';                        //ให้ตัวแปร x มีค่าเป็นจริงเท่ากับ T
                               clrscr();
                           while(x='T')                //ให้ทำงานขณะที่ตัวแปร x มีค่าเป็นจริง
                           {                
                               printf("Print Number : %d\n",i);    //แสดงค่าที่เก็บในตัวแปร i
                               printf("Do you want to continute ?(Y/N)");
                               ans=getchar();        //รับค่าจากแป้นพิมพ์แล้วนำไปเก็บในตัวแปร ans
                               printf(\n);
                               i++;
                               if(toupper(ans)=='n')            //ถ้าตัวแปร ans=n หรือ N
                               break;                                              //หยุดการทำงาน
    }
}




ฟังก์ชัน continue

       จะทำงานโดยข้ามบางคำสั่งซึ่งอยู่ภายในลูปเพื่อเริ่มต้นการทำงานในรอบถัดไป
เมื่อทำงานร่วมกับฟังก์ชัน while และ do_while จะทำให้คอมพิวเตอร์ไปตรวจสอบเงื่อนไข ส่วนฟังก์ชันfor จะทำการเพิ่มหรือลดค่าของตัวแปรแล้วค่อยไปทดสอบเงื่อนไข

ตัวอย่างโปรแกรม   การใช้ฟังก์ชัน continue ข้ามบางคำสั่งที่อยู่ภายในลูป

# include <stdio.h>
                  # include<conio.h>
                    void main(void)
                      {
                               float sum,ave,num;
                               int n=0;
                               sum=0;
                               clrscr();
                               printf("Input 10 number for average\n");   
                           for(i=1;i<=10,++i)                
                           {                
                               printf("Enter Number: %d = ",i);
                               scanf("%f",&num);
                               if(num>10)
                                  continue;
                               sum=sum+num;
                               n=n+1;
                           }
                           ave=sum\n;
                          printf("Average number between 1-10 is %10.4f\n",ave);
                          getch();
                       }
 

การทำงานของโปรแกรม

          เมื่อรันโปรแกรมเครื่องจะให้ป้อนตัวเลข 10 จำนวน แล้วนำไปเก็บไว้ในตัวแปร num  ในกรณีที่ป้อนค่าตัวเลข
มากกว่า 10  จะใช้ฟังก์ชัน  continue  ในการสั่งให้โปรแกรมข้ามบรรทัด  sum=sum+num;  และ บรรทัด n=n+1; 
โดยจะไปรับค่าตัวเลขตัวใหม่ โดยไม่นำค่าที่เกิน 10  มาร่วมในการคำนวณด้วย เมื่อรับค่าตัวเลขจนครบ 10  จำนวนแล้วจะทำการหาค่าเฉลี่ยแล้วแสดงผล


ข้อมูลอ้างอิง :   http://203.172.208.11/tc/u501.html







ไม่มีความคิดเห็น:

แสดงความคิดเห็น