آموزش حلقه for در C و C++ و آردوینو
در این آموزش، به کمک یک مثال یاد خواهید گرفت که چگونه از حلقه for استفاده کنید.
در برنامه نویسی ، یک حلقه به منظور تکرار یک بلوک کد استفاده می شود، تا زمانی که شرایط مشخص و از پیش تعیین شده ای رخ دهد.
برنامه نویسی C دارای سه نوع حلقه می باشد:
- For loop
- While loop
- Do … while loop
در این مقاله به بررسی حلقه ی for loop می پردازیم، در مقاله های آموزشی بعدی به بررسی دو مدل دیگر نیز می پردازیم.
از آنجا که در آردوینو ( Arduino ) نیز از زبان های C و C++ استفاده می شود، مطالبی که در ادامه بیان می شود عمومی هستند و برای میکروکنترلرها همینطور زمینه ی Embedded C کاربرد دارد.
حلقه for در زبان برنامه نویسی C
سینتکس مربوط به حلقه for به شکل ذیل می باشد.
for (startStep; testExpression; updateStep)
{
// statements inside the body of loop
}
حلقه ی for چگونه کار می کند؟
- بخش startStep فقط یک بار اجرا می شود
- سپس، بخش testExpression که حاوی یک عبارت شرطی به منظور خاتمه یافتن حلقه است، ارزیابی می شود. در صورتی که شرایط ارزیابی شده، برقرار نباشد (نادرست)، حلقه ی for پایان می یابد.
- گرچه ، اگر نتیجه ی ارزیابی شده در بخش testExpression پس از ارزیابی برقرار باشد (صحیح باشد)، دستورات درون بدنه ی حلقه ی for اجرا می شود، سپس گام شمارنده ی حلقه توسط بخش updateStep به آپدیت و اعمال می شود.
- به منظور پیاده سازی بخش testExpression ، در یک مقاله ی جداگانه به بررسی عملگرهای منطقی و مقایسه ای خواهیم پرداخت.
فلوچارت حلقه for
مثال 1 : حلقه for
// Print numbers from 1 to 10
#include <stdio.h>
int main()
{
int i;
for (i = 1; i < 11; ++i)
{
printf("%d ", i);
}
return 0;
}
نتیجه
1 2 3 4 5 6 7 8 9 10
- متغییر i با مقدار 1 ، مقدار دهی اولیه شده است.
- بخش testExpression که با عبارت i < 11 پیاده سازی شده است. از آنجایی که 1 کمتر از 11 یک گزاره صحیح می باشد و بدنه ی حلقه ی for اجرا می شود و این باعث می شود مقدار 1 در خروجی (به عنوان مقدار فعلی i) بر روی صفحه نمایش چاپ شود.
- بخش updateStep که به صورت ++i پیاده سازی شده است، اجرا می شود. حالا، مقدار i برابر دو می گردد. دوبارهو مجدد این testExpresstion (بخش دوم حلقه for) صحیح تشخیص داده می شود، به این ترتیب مجدد بدنه ی حلقه ی for اجرا می شود. این امر باعث چاپ شدن مقدار دو ( به عنوان مقدار فعلی i) بر روی صفحه نمایش می شود.
- دوباره، بخش updateStep اجرا شده و مقدار i یک واحد دیگر افزایش می یابد و هنوز مقدار جدید i که کمتر از 11 می باشد، در نتیجه شرط در بخش testExpression صحیحی بوده و موجب می شود دوباره بدنه ی for اجرا شده و عدد بعدی نیز چاچ شود.
- زمانی که متغییر i برابر مقدار 11 شود، شرط i < 11 برقرار نخواهد بود و نادرست تشخیص داده می شود، به این ترتیب حلقه ی for پایان می یابد.
مثال 2 : حلقه ی for
// Program to calculate the sum of first n natural numbers
// Positive integers 1,2,3...n are known as natural numbers
#include <stdio.h>
int main()
{
int num, count, sum = 0;
printf("Enter a positive integer: ");
scanf("%d", &num);
// for loop terminates when num is less than count
for(count = 1; count <= num; ++count)
{
sum += count;
}
printf("Sum = %d", sum);
return 0;
}
نتیجه
Enter a positive integer: 10 Sum = 55
- مقدار وارد شده توسط کاربر در متغییر num ذخیره می شود. با فرض اینکه کاربر مقدار 10 را وارد کرده است.
- مقدار count با مقدار 1 ، مقدار دهی اولیه شده است. از آنجایی که عبارت شرطی count <= num (1 کمتر یا مساوی با 10) صحیح می باشد، بدنه ی حلقه ی for اجرا شده و مقدار sum برابر با مقدار 1 خواهد بود.
- سپس بخش updateStep که به صورت ++count پیاده سازی شده است، اجرا می شود و به این ترتیب مقدار جدید count برابر با 2 خواهد بود. دوباره شرط حلقه برقرار بوده ، چرا که مقدار 2 نیز کمتر از مقدار 10 می باشد. مجدد بدنه ی حلقه ی for اجرا می شود و موجب می شود مقدار جدید متغییر sum برابر با مقدار 3 گردد.
- ان فرایند ادامه خواهد یافت و مقدار sum محاسبه خواهد شد، تا زمانی که count برابر مقدار 11 گردد.
- زمانی که count برابر 11 می باشدو مقدار testExpression که شرط حلقه است، ارزیابی می شود و نتیجه 0 می باشد، یا به عبارت دیگر نادرست، به این ترتیب حلقه پایان می یابد.
- پس مقدار sum بر روی صفحه نمایش چاپ می شود.
منابع پیشنهادی جهت یادگیری بیشتر
لینک های مرتبط
جهت ارتقاء سطح و کیفیت آموزش ها نظرات خودتون رو راجع به این مطلب، از قسمت نظرات پایین همین صفحه، با ما در میان بگذارید.