مثال با استفاده از دستور for برنامهای بنویسید که اعداد صحیح صفر تا ۱۰ را روی خطوط متوالی چاپ کند.
#include<stdio.h>
main ()
{
int number ;
for (number=0 ; number<=10 ; + + number)
printf (“%d\n”, number) ;
}
در این برنامه اولین خط در دستور for شامل سه expression است که در داخل پرانتز قرار گرفتهاند. اولین expression مقدار صفر را به متغیر number اختصاص میدهد. دومین expression بیان میکند که تکرار حلقه تا هنگامی که مقدار فعلی number از ۱۰ تجاوز نکرده باشد ادامه خواهد یافت. سومین expression پس از هر بار گذر حلقه، مقدار number را یک واحد افزایش میدهد.
از نظر دستوری نیاز نیست هر سه expression مربوط به دستور for به کار برده شود، اگرچه به کار بردن سمیکولون مربوط به هر expression الزامی است. نتیجه حذف هر expression باید به طور کامل فهمیده شود. اگر آغازین کردن و یا تغییر شاخص یا هر دو به طریق دیگری انجام گیرد، ممکن است expression های اول و سوم حذف گردند. درصورتی که expression دوم حذف گردد، ارزش آن مقدار ثابت true درنظر گرفته خواهد شد و در نتیجه تکرار حلقه به صورت نامتناهی ادامه خواهد یافت مگر اینکه خروج از حلقه به طریق دیگری مثلاً با دستور break یا return پیشبینی گردد. در اغلب کاربردهای دستور for هر سه expression استفاده میشود.
مثال ۵ـ۷ با استفاده از دستور for برنامهای بنویسید که عدد صحیح n را بخواند و فاکتوریل آن را حساب و با خود عدد چاپ کند.
#include<stdio.h>
main ()
{
int n , fact =1 ;
scanf (“%d”, &n) ;
for (i=2 ; i<=n ; ++i)
fact = fact * i ;
printf (“factorial of %d is %d”, n , fact) ;
}
مثال برنامهای بنویسید که نمرههای امتحانی دانشجویان کلاسهای مختلف را بخواند و معدل هر کلاس را حساب و چاپ کند. تعداد کلاسها و تعداد دانشجویان هر کلاس از طریق دستگاه ورودی خوانده شود.
#include<stdio.h>
main ()
{
int n , count , loops , loopcount ;
float x , average , sum ;
scanf(“%d”,&loops) ;
/*outer loop*/
for (loopcount=1 ; loopcount<=loops ; ++ loopcount)
{
sum = 0 ;
printf(“\n class number %d \n how many numbers?”, loopcount) ;
scanf (“%d”,&n) ;
for (count=1 ; count<=n ; + +count)
/* inner loop */
{
scanf (“%f”,&x) ;
sum += x ;
} /*end of inner loop*/
average = sum / n ;
printf(“\n the average is %f\n”, average) ;
} /*end of outer loop*/
}
حلقهها میتوانند در یکدیگر قرار گیرند یعنی به صورت تودرتو به کار روند که در این حالت حلقه داخلی باید کاملاً توسط حلقه بیرونی احاطه گردد. به عبارت دیگر دو حلقه نباید یکدیگر را قطع کنند. همچنین هر حلقه باید با شاخص جداگانهای کنترل شود. برنامه فوق از دو حلقه تشکیل شده است. در آغاز تعداد کلاسها (loops) خوانده میشود و بر اساس آن حلقه بیرونی تکرار میگردد یعنی به ازای هر کلاس یک بار اجرا میشود. هر بار در داخل حلقه بیرونی، متغیر sum مساوی صفر قرار داده میشود، سپس تعداد دانشجویان یا تعداد نمرههای امتحانی n خوانده میشود. پس از آن حلقه درونی به تعداد دانشجویان کلاس مورد نظر n اجرا میشود که در هر تکرار نمره امتحانی یک دانشجو خوانده و به sum افزوده میشود. هر بار پس از کامل شدن حلقه درونی، جمع نمرههای امتحانی کلاس به دست میآید که سپس معدل کلاس با نام average حساب و چاپ میشود.