คำสั่ง while, do-while และ for

0
9867

การควบคุมทิศทางแบบวนรอบ หรือที่เรียกว่าการทำงานแบบวนลูป (Loop) นั้นคือการที่เราเขียนโปรแกรมให้วนรอบทำงานซ้ำคำสั่งเดิม โดยมีการกำหนดเงื่อนไขเพื่อให้โปรแกรมวนรอบทำงาน คำสั่งในภาษา C ที่ใช้สำหรับควบคุมการวนรอบคือ while, do-while และ for ซึ่งมีรายละเอียดดังนี้


คำสั่ง while

          การทำซ้ำด้วยคำสั่ง while เป็นคำสั่งทำซ้ำแบบหนึ่งในภาษา C ที่นิยมใช้ในกรณีที่ใช้ตรวจสอบเงื่อนไขว่าเป็นจริงก็จะทำซ้ำ แต่ถ้าเงื่อนไขเป็นเท็จก็จะหลุดออกจาการทำซ้ำ ซึ่งเงื่อนไขที่ตรวจสอบนี้อาจจะใช้ในกรณีที่รู้จำนวนรอบแน่นอน เช่น ตั้งแต่ X=1 ถึง X=10 หรือไม่รู้จำนวนรอบแน่นอน เช่น ทำซ้ำในขณะที่ตัวแปร X = ‘y’ ลักษณะเด่นอย่างหนึ่งของคำสั่ง while คือ จะตรวจสอบเงื่อนไขก่อนว่าเป็นจริงหรือเท็จ ซึ่งในการตรวจสอบครั้งแรก ถ้าเงื่อนไขตรวจสอบเป็นเท็จ ก็จะไม่เข้าไปกระทำในวนรอบของการทำซ้ำเลยก็ได้ แต่ในทำนองเดียวกัน ถ้าตัวตรวจสอบเงื่อนไขเป็นจริงตลอด ก็จะทำซ้ำไปไม่สิ้นสุดก็ได้ ซึ่งผู้เขียนโปรแกรมจะต้องระมัดระวัง จะต้องเขียนโปรแกรมให้มีโอกาสออกจากการวนรอบทำซ้ำให้ได้

รูปแบบการเขียน

While( เงื่อนไข )

{

คำสั่ง 1 ;

คำสั่ง 2 ;

คำสั่งเพิ่มค่าหรือลดค่า ;

}


ตัวอย่าง

#include <stdio.h>

#include <conio.h>

int main()

{

int x=1;

while(x<=5)

{

printf(“%d \n”,x);

x++;

}

getch();

}




คำสั่ง do – while

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

รูปแบบคำสั่ง  for

Do

{ คำสั่งที่ 1 ;

คำสั่งที่ 2 ;

คำสั่งเพิ่มค่าหรือลดค่า ;

}

while( เงื่อนไข );


ตัวอย่าง

#include <stdio.h>

#include <conio.h>

int main()

{

int x=1;

do

{

printf(“%d \n”,x);

x++;

}

while(x<5);

getch();

}



คำสั่ง for 

นิยมใช้กับการทำซ้ำที่รู้จำนวนรอบของการทำซ้ำว่าต้องการทำซ้ำกี่รอบ คือตั้งแต่ค่าอะไร ถึง ค่าอะไร โดยมีรูปแบบคำสั่งดังนี้

รูปแบบคำสั่ง  for

For( ค่าตั้งต้น ; เงื่อนไข ; การเพิ่มค่าหรือลดค่า )

{

คำสั่งที่ 1 ;

}


ตัวอย่าง

#include <stdio.h>

#include <conio.h>

main()

{

   int i;

   for(i= 1;i< 10;i++)

   printf(” %d”,i);

   getch();

}




แบบฝึกหัด

ให้นักเรียนใช้คำสั่ง for เพื่อให้โปรแกรมแสดงผลดังภาพ