เป็นคำสั่งที่นิยมใช้ในกรณีที่ผู้เขียนโปรแกรมรู้จำนวนรอบของการทำงานที่แน่นอน
รูปแบบ
for ( initial ; condition ; increment)
statement;
โดยที่ initial คือ ส่วนที่ใช้กำหนดค่าเริ่มต้นให้กับตัวแปรที่ใช้ในการวนรอบ ซึ่งตัวแปรที่ใช้จะต้องมีชนิดเป็น char หรือ int
condition คือ การกำหนดนิพจน์ที่เป็นเงื่อนไข ที่ใช้ในการตรวจสอบการวนรอบ
increment คือ ส่วนที่เพิ่มหรือลดค่าของตัวแปรทีละหนึ่งหรือมากกว่าหนึ่งก็ได้
statement คือ คำสั่งที่ต้องการให้ทำซ้ำเมื่อตรวจสอบเงื่อนไขเป็นจริง
ถ้าคำสั่งที่ต้องการให้ทำซ้ำเมื่อตรวจสอบเงื่อนไขเป็นจริง มีหลายคำสั่ง จะต้องเขียนชุดคำสั่งเหล่านั้นอยู่ในเครื่องหมาย { }
for ( initial ; condition ; increment)
{ statement 1;
statement 2;
:
statement n;
}
การทำงานของเงื่อนไข for มีลำดับดังนี้
1. กำหนดค่าเริ่มต้นให้กับตัวแปร ในส่วนของ initial
2. ตรวจสอบเงื่อนไข ในส่วนของ condition
- ถ้าผลการตรวจสอบเป็นจริง ทำขั้นต่อไป
- ถ้าผลการตรวจสอบเป็นเท็จ ข้ามไปทำขั้นที่ 6
3. ทำงานตาม statement ที่กำหนดไว้
4. เพิ่มหรือลดค่าของตัวแปร ในส่วนของ increment
5. กลับไปทำขั้นที่ 2
6. จบการทำงานของคำสั่ง for
ตัวอย่างที่ 1 พิมพ์รูปข้างล่าง โดยใช้ลูป for
*****
*****
*****
#include<stdio.h>
#include<conio.h>
main()
{int i;
for(i=1;i<=3;i++)
printf("*****\n");
printf("press any key to exit");
getch();
}
ตัวอย่างที่ 2 คำนวณผลบวกของเลข 1 – 10
#include<stdio.h>
#include<conio.h>
main()
{int i,sum=0;
for(i=1;i<=10;i++)
sum = sum + i;
printf("sum = %d\n",sum);
printf("\npress any key to exit");
getch();
}
ตัวอย่างที่ 3 พิมพ์ เลข 3 ถึง 1 โดยใช้ลูป for แบบ ลดค่าตัวแปรควบคุมลูป
#include<stdio.h>
#include<conio.h>
main()
{int i;
for(i=3;i>=1;i--)
printf("i = %d\n",i);
printf("press any key to exit");
getch();
}
ข้อพึงระวัง หลังคำสั่ง for จะไม่มีเครื่องหมาย ; ถ้าผู้เขียนโปรแกรม ใส่เครื่องหมาย ; คำสั่งที่ต้องการให้ทำงานหมุนวนจะไม่ถูกดำเนินการเมื่อเงื่อนไขเป็นจริง แต่จะถูกดำเนินการเมื่อเงื่อนไขเป็นเท็จ และจะดำเนินงานเพียง 1 ครั้ง
ตัวอย่างที่ 4 ผู้เขียนโปรแกรมต้องการให้พิมพ์คำ NPRU จำนวน 3 บรรทัด แต่ผู้เขียนโปรแกรมใส่เครื่องหมาย ; หลังคำสั่ง for จึงทำให้โปรแกรมพิมพ์คำ NPRU เพียง 1 บรรทัด
#include <stdio.h>
void main()
{ int i;
for(i=1;i<=3;i++);
printf(“NPRU\n”);
}
ตัวอย่างที่ 5 พิมพ์รูปข้างล่าง โดยใช้ลูป for 2 ลูปซ้อนกัน
*****
*****
*****
#include<stdio.h>
#include<conio.h>
main()
{int i,j;
for(i=1;i<=3;i++)
{
for(j=1;j<=5;j++)
printf("*");
printf("\n");
}
printf("press any key to exit");
getch();
}