คำสั่ง for ,while ,do...while
1. for (วนลูปการทำงานด้วยจำนวนรอบที่แน่นอน)
เป็นคำสั่ง for เป็นคำสั่งวนซ้ำการทำงานเดิมๆ ด้วยจำนวนรอบที่แน่นอน โดยที่โปรแกรมจะตรวจสอบเงื่นไขการทำงานทุกรอบ ถ้าเงื่อนไขเป็นจริงให้ทำงานที่ชุดคำสั่งภายในในลูปต่อไป เมื่อทำงานเสร็จจะเพิ่มหรือลดค่าตัวแปรที่ใช้กำหนดเงื่อนไข และตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขเป็นเท็จให้โปรแกรมออกจาก ลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
ซึ่งคำสั่ง for ในภาษ C มีรุปแยบบคำสั่งดังนี้
for(initial; condition; change)
{
statements;
}
โดยที่ initial เป็นส่วนกำหนดค่าเรื่มต้นของตัวแปรที่ใช้กำหนดเงื่อนไข
condition เป็นส่วนกำหนดเงื่อนไขการวนลูป
change เป็นส่วนการเปลี่ยนแปลงของตัวแปรในแต่ละรอบ
statements เป็นชุดคำสั่งที่ต้องทำเมื่อเงื่อนไขเป็นจริง
Flowchart

#include
#include
main( )
{
int count, sum, n;
printf("Enter integer : ");
scanf("%d", &n);
sum = 0;
for (count = 1; count <= n; count++)
{
sum += count;
}
printf("Sum = %d", sum);
getch ( ) ;
}
Result
Enter integer : 9
Sum= = 45
ในกรณีจำนวนคำสั่ง for มีแค่คำสั่งเดียว ไม่จำเป็นต้องใส่เครื่องหมาย { } ก็ได้ แต่ผู้เขียนแนะนำให้ผู้อ่านใส่เครื่องหมาย { } ทุกครั้งที่มีการใช้คำสั่ง for
ในกรณีจำนวนคำสั่ง for มีแค่คำสั่งเดียว ไม่จำเป็นต้องใส่เครื่องหมาย { } ก็ได้ แต่ผู้เขียนแนะนำให้ผู้อ่านใส่เครื่องหมาย { } ทุกครั้งที่มีการใช้คำสั่ง for
อธิบายการทำงานโปรแกรม
- บรรทัดที่ 6 ประกาศตัวแปรชนิดจำนวนเต็มชื่อ count, sum และ n
- บรรทัดที่ 9 รับข้อมูลชนิดจำนวนเต็มจากแป้นพิมพ์เก็บไว้ที่ตัวแปร n
- บรรทัดที่ 11 กำหนดค่าให้ตัวแปร sum = 0
- บรรทัดที่ 13-16 กำหนดให้โปรแกรมมวนลูปทำงานชุดคำสั่งภายในเครื่องหมาย { } คำสั่ง for โดย กำหนดค่าเริ่มต้นของเงื่อนไขที่ตัวแปร count = 1 แล้วตรวจสอบเงื่อนไขว่า ค่าตัวแปร count น้อยก่าค่าตัวแปร n หรือไม่ ถ้าเงื่อนไขเป็นจริงให้ ทำงาน ชุดคำ สั่งภายในลูปอีกครั้ง ถ้าเงื่อนไขเป็นเท็จให้ออกจากลูปการทำงานทันที
- บรรทัดที่ 15 กำหนดค่าใฟ้ตัวแปร sum เท่ากับผลรวมของตัวแปร sum กับตัวแปร count
- บรรทัดที่ 18 แสดงค่าตัวแปร sum ทางจอภาพ
2. while (วนลูปการทำงานเมื่อเงื่อนไขเป็นจริง)
คำสั่ง while เป็นคำสั่งวนคำสั่งวนซ้ำการทำงานเดิมๆของโปรแกรม โดนโปรแกรมตรวจสอบเงื่อนไขก่อนการทำงานทุกครั้ง ถ้าเงื่อนไขที่กำหนดเแ็นจริง โปรแกรมจะทำงานที่ชุดคำสั่งภายในลูป เมื่อโปรแกรมทำงานเสร็จจะตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขที่กำหนดเป็นเท็จ โปรแกรมจะออกจากลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
ซึ่งคำสั่ง while ในภาษา C มีรูปแบบคำสั่งดังนี้
while (condition)
{
statement;
}
โดยที่ condition เป็นเงื่อนไขที่กำหนดให้ตรวจสอบก่อนทำงานภายในลูปทุกครั้ง
statement เป็นชุดคำสั่งที่ต้องทำเมื่อเงื่อนไขเป็นจริง
Flowchart

#include
#include
main ( )
{
int count, n;
printf("Enter integer : ");
scanf("%d", &n);
count = 0;
printf("\n\n");
while(count < n)
{
printf("\t%d", count);
count++;
}
getch ( ) ;
}
Result
Enter integer : 7
0 1 2 3 4 5 6
อธิบายการทำงานของโปรแกรม
- บรรทัดที่ 6 ประกาศตัวแปรชนิดจำนวนเต็มชื่อ count และ n
- บรรทัดที่ 9 รับข้อมูลชนิดจำนวนเต็มจากแป้นพิมพ์เก็บไว้ที่ตัวแปร n
- บรรทัดที่ 11 กำหนดค่าให้ตัวแปร count เท่ากับ 0
- บรรทัดที่ 13-18 กำหนดให้โปรแกรมลูปทำงานชุดคำสั่งภายในเครื่องหมาย { } ด้วยคำสั่ง while โดยตรวจสอบเงื่อนไจว่า ค่าตัวแปร count น้อยกว่าค่าตัวแปร n หรือไม่ ถ้าเงื่อนไขเป็นจริงให้ทำงานที่ชุดคำสั่งภายในลูป เมื่อทำงานเสร็จแล้วให้ตรวจสอบ เงื่อนไขค่าตัวแปร count น้อยกว่าค่าตัวแปร n หรือไม่อีกครั้ง ถ้าเงื่อนไขเป็นจริง ให้ทำงานที่ชุดคำสั่งภายในลูปอีกครั้ง ถ้าเป็นเท็จให้ออกจากลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
- บรรทัดที่ 16 แสดงค่าตัวแปร count ทางจอภาพ
- บรรทัดที่ 17 เพิ่มค่าแปร count ขึ้น 1 ค่า
3. do...while (วนลูปการทำงานอย่างน้อย 1 ครั้ง)
คำสั่ง do...while เป็นคำสั่งวนซ้ำการทำงานเดิมๆ โดยโปรแกรมจะทำงานชุดคำสั่งในลูปก่อน 1 รอบ จึงตรวจสอบเงื่อนไขที่กำหนด ถ้าเงื่อนไขที่กำหนด ถ้าเงื่อนไขที่กำหนดเป็นตริงให้กลับไปทำงานชุดคำสั่งภายในลูปอีกครั้ง และตรวจสอบเงื่อนไขที่กำหนดอีกครั้ง ถ้าเงื่อนไขที่กำหนดเป็นเท็จโปรแกรมจะออกจากลูปการทำงานไปทำงานที่คำสั่งถัดไปทันที
ซึ่งคำสั่ง do...while ในภาษ C มีรูปแบบคำสั่งดังนี้
do
{
statements;
}while (condition);
โดยที่ condition เป็นเงื่อนไขที่กำหนดให้ตรวจสอบหลังทำงานภายในลูปทุกครั้ง
statements เป็นชุดคำสั่งที่ทำงานก่อนตรวจสอบเงื่อนไข
จากรูปแบบคำสั่ง do...while เราสามารถเขียนแผนภูมิการทำงาน (Flowchart) ได้ดังนี้

#include
main ( )
{
char ch;
int sum, n;
sum = 0;
do
{
printf("\n\n");
printf("Enter integer : ");
sum = sum + n;
printf("Do you want do again : ");
ch = getch( );
} while(ch != 'N');
printf("\n\n");
printf("Sum : %d", sum);
getch( );
}
Result
Enter integer : 9
Do you want to do again :
Enter integer : 7
Do you want to do again :
Enter integer : 6
Do you want to do again :
Sum : 22
อธิบายการทำงานของโปรแกรม
- บรรทัดที่ 6 ประกาศตัวแปรชนิดอักขระชื่อ ch
- บรรทัดที่ 7 ประกาศตัวแปรชนิดจำนวนเต็มชื่อ sum และ n
- บรรทัดที่ 9 กำหนดค่าตัวแปร sum = 0
- บรรทัดที่ 11-21 กำหนดให้โปรแกรมวนลูปทำงานชุดคำสั่งภายในเครื่องหมาย { } ด้วยคำสั่ง do...while โดนทำงานที่ชุดคำสั่งภายในลูปก่อน 1 ครั้ง แล้วตรวจสอบเงื่อนไขว่า ค่าตัวแปร ch ไม่เท่ากับ N หรือไม่ ถ้าเงื่อนไขเป็นจริงให้ทำงานที่ชุดคำสั่งภาย ในลูปอีกครั้ง ถ้าเป็นเท็จให้ออกจากลูปไปคำสั่งต่อไปทันที
- บรรทัดที่ 15 รับข้อมูลชนิดจำนวนเต็มจากแป้นพิมพ์เก็บไว้ที่ตัวแปร n
- บรรทัดที่ 17 กำหนดค่าให้ตัวแปร sum เท่ากับผลรวมของตัวแปร sum กับตัวแปร n
- บรรทัดที่ 20 รับข้อมูลชนิดอีกขระจากแป้นพิมพ์เก็บไว้ที่ตัวแปร ch
- บรรทัดที่ 21 ตรวจสอบเงื่อนไขค่าตัวแปร ch ไม่เท่ากับ N หรือไม่ ถ้าเงื่อนไขเขเป็นจริงให้ ทำงานที่ชุดคำสั่งภายในลูปอีกครั้ง ถ้าเป็นเท็จให้ออกจากลูปการทำงานไปทำงาน ที่คำ สั่งถัดไป
สรุปเนื้อหาบทที่ 6
การเขียนโค้ดเพื่อกำหนดให้โปแกรมวนลูปทำงานในชุดคำสั่งเดียวกัน ตามเงื่อนไขที่เราต้องการในภาษ C นั้น มีด้วยกัน 3 คำสั่งคือ คำสั่ง for, คำสั่ง while, คำสั่ง do...while รูปแบบดังนี้
- คำสั่ง for
for (initial; condition; change)
{
statements;
}
- คำสั่ง while
while(condition)
{
statements;
}
- คำสั่ง do...while
do
{
statements;
}while (condition);
โปรมแกรมนี้เป็นโปรแกรมบวกเลขที่หารด้วยแฟรกโดยnคือค่าที่เราป้อนเข้าในโปรแกรม
ตอบลบ1/1+1/1!-1/2!+1/3!+...+1/n-1+1/n
#include
float flag (int n);
int main ()
{
int n;
printf ("Enter n:");
scanf ("%d",&n);
printf ("summation is %f",flag(n));
}
float flag (int n)
{
int b;
float z=0,a;
while (n!=0)
{
a=1;
b=n;
while(b!=0)
{
a=a*b;
b=b-1;
}
a=1.00/a;
n=n-1;
z=z+a;
}
return z;
(นาย ปลวัชร เปรมสิริอำไพ 54-010116-2033-0)
โปรแกรม ใส่เลขจำนวนเต็ม เมื่อใส่จำนวนเต็มลบแล้วจะแสดงผลรวมของจำนวนเต็มบวกที่เป็นเลขคู่ แล้วออกจากโปรแกรม
ตอบลบ#include"stdio.h"
int main (void)
{
int x,y,sum;
sum=0;
while(1)
{
printf("Enter :");
scanf("%d",&x);
if(x<0)
break;
else if(x>0)
y=x%2;
if(y==0)
sum=sum+x;
}
printf("total = %d",sum);
}
แสดงผล
Enter :8
Enter :1
Enter :5
Enter :2
Enter :-1
total = 10
โปรแกรมแสดงผลเลข 1 ถึง 10
ตอบลบ#include"stdio.h"
int main(void)
{
int counter;
for(counter=1; counter<=10; counter++)
{
printf("%d\n",counter);
}
return 0;
}
การแสดงผล คือ
1
2
3
4
5
6
7
8
9
10
(น.ส. พรทิพย์ ทาบุตร 54-010116-2036-4)
โปรแกรมแสดงเลข 10 ถึง 1
ตอบลบ#include"stdio.h"
int main(void)
{
int count;
count=10;
while(count>=1)
{
printf("%d\n",count);
count--;
}
return 0;
}
แสดงผล
10
9
8
7
6
5
4
3
2
1
(หัสรา วัจนะรัตน์ 5401011620542)
โปรแกรมใส่รบค่าเลขคู่จากแป้นพิมพ์ถ้าเป็นลขขี้จะไม่นับละทำการบวกหาผลรวมของเลขคู่
ตอบลบ#include
int main()
{
int a,b=0;
prinnf("Please enter number :");
scanf("%d",&a);
while(a>=0)
{
b=b+a;
printf("Please enter 1 more ");
scanf("%d",&a);
}
printf("Result = %d",b);
return 0;
}
#include
ตอบลบvoid main (void)
{
char out = 'n';
while (out != y)
{
printf ("\n Do you want to exit [Y]es or [N]o :");
scanf ("%c",&out);
}
printf("End");
return 0;
}
การทำงาน
Do you want to exit [Y]es or [N]o:n
Do you want to exit [Y]es or [N]o:n
Do you want to exit [Y]es or [N]o:y
End
นายธน สุทธิธรรม 5401011630149
สูตรคูณแม่ 175
ตอบลบ#include "stdio.h"
int main (void)
{
int i;
int j;
for(i=o,j=0;i<=12(น้อบกว่าหรือเท่ากับ12);i++,j+=175)
{
printf("%d x 175 = %d\n",i,j);
}
return 0;
}
แสดง ผลสูตรคูณแม่175
1 x 175 = 175
2 x 175 = 350
3 x 175 = 525
4 x 175 = 700
5 x 175 = 875
6 x 175 = 1050
7 x 175 = 1225
8 x 175 = 1400
9 x 175 = 1575
10 x 175 = 1750
11 x 175 = 1925
12 x 175 = 2100
นาย ประวีร์ แสงทอง 54-010116-2032-1