درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
حسین احمدی
امتیاز: 215942
رتبه:3
344
265
416
2833
حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر

برنامه نویسی به زبان ساده - قسمت دوازدهم :: دستورات تکرار و حلقه ها

تاریخ 34 ماه قبل
نظرات 2
بازدیدها 2472
خیلی اوقات پیش می آید که می خواهیم در یک برنامه، قطعه ای از کد به تعداد دفعات مشخص اجرا شود. برای مثال، فرض کنید می خواهیم در زبان سی عبارت Hello ITPro.ir را پنج بار در خروجی نمایش دهیم. کد زیر اینکار را برای ما انجام می دهد:

#include <stdio.h>

main() { 
   printf( "Hello ITPro.ir!\n");
   printf( "Hello ITPro.ir!\n");
   printf( "Hello ITPro.ir!\n");
   printf( "Hello ITPro.ir!\n");
   printf( "Hello ITPro.ir!\n");
}

کار خیلی ساده است و کافیست دستور printf که در زبان سی برای چاپ عبارتی در خروجی انجام می شود را پنج بار پشت سر هم به صورت بالا فراخوانی کنیم. اما فرض کنید بخواهیم صد بار این کار انجام شود! مطمئناً نوشتن صدر بار دستور printf کار سختی است و البته صحیح هم نمی باشد. راهکار مناسب در این مواقع استفاده از حلقه ها و دستورات تکرار در زبان های برنامه نویسی است. تقریباً تمامی زبان های برنامه نویسی از قابلیت حلقه ها پشتیبانی می کنند که به اجازه اجرای بخشی از کد را به تعداد مشخص به برنامه نویس می دهد. نحوه نوشتن حلقه ها در هر زبان برنامه نویسی متفاوت است، اما خوشبخانه زبان های جاوا، سی و سی شارپ به دلیل اینکه ریشه در زبان سی دارند از ساختار یکسان و مشابهی استفاده می کنند. برای شروع، کدی که در بالا نوشتیم را می خواهیم با کمک حلقه در زبان سی پیاده سازی کنیم:

#include <stdio.h>

main() {

   int i = 0;
   
   while ( i < 5 ) {
	
      printf( "Hello ITPro.ir!\n");
      i = i + 1;
   }
}

در کد بالا، از حلقه while برای تکرار دستور printf استفاده کردیم. دستوراتی که در بین {} بعد از دستور while قرار میگیرند، در واقع همان دستوراتی هستند که باید تکرار شوند. در ادامه همین مطلب با انواع حلقه ها آشنا خواهیم شد، اما در ابتدا دیاگیرام زیر نمای کلی از ساختار حلقه ها که در بین کلیه زبان های برنامه نویسی مشترک است را نشان می دهد:

img1


در ادامه به بررسی انواع حلقه ها خواهیم پرداخت.


حلقه while


ساختار کلی این حلقه که بین زبان های مبتنی بر سی مشترک است به صورت زیر است:

while(شرط)
{
    // دستورات برای تکرار
}

دیاگرام زیر، ساختار دستور while را نشان می دهد:

img2


در مورد ساختار دستور while به نکات زیر توجه کنید:

  1. حلقه while با کلمه کلیدی while شروع شده و در مقابل آن در داخل پرانتز شرطی که برای اجرای حلقه در نظر داریم را می نویسیم.
  2. حلقه while تا زمانی اجرا می شود که شرط داخل پرانتز مقدار true برگرداند.
  3. دستورات مرتبط با حلقه که باید تکرار شوند را داخل {} می نویسیم
  4. دستوراتی که داخل {} نوشته می شوند، می توانند یک یا چندین دستور باشند.
  5. دستورات مربوط به حلقه while در صورت برقرار نبودن شرط در ابتدای حلقه اجرا نخواهند شد.


حلقه do..while


در حلقه while، شرط اجرای حلقه قبل از رسیدن به دستورات بررسی می شد، اما در ساختار do..while شرط در انتهای حلقه بررسی می شود، به همین خاطر و بر خلاف دستور while، دستورات حلقه حداقل یکبار اجرا می شوند. در زیر ساختار کلی حلقه doo.while را مشاهده می کنید:

do
{
    // دستورات برای تکرار
} while(شرط)

در تصویر زیر، دیاگرام و ساختار دستور do..while را مشاهده می کنید:

img3


کدی که در ابتدای این مطلب نوشتیم را با ساختار do.while مجدد بازنویسی می کنیم:

#include <stdio.h>

main() {
   int i = 0;   
   do {	
      printf( "Hello ITPro.ir!\n");
      i = i + 1;
   }while ( i < 5 );
}


کلمه کلیدی break


زمانی که دستور break داخل یک حلقه قرار میگیرد، به محض اینکه به این دستور برسیم، روند اجرای حلقه متوقف شده و از حلقه خارج خواهیم شد و روند اجرا بعد از حلقه ادامه پیدا می کند. نحوه نوشتن دستور break به صورت زیر است:

break;

در تصویر زیر، دیاگرام و نحوه کاربرد دستور break را مشاهده می کنید:

img4


در کد زیر، زمانی که مقدار متغیر i به عدد 3 برسد، روند اجرای حلقه متوقف شده و ادامه اجرای برنامه پس از حلقه ادامه خواهد یافت:

#include <stdio.h>

main() {
   int i = 0;
   do {
      printf( "Hello ITPro.ir!\n");
      i = i + 1;
      if( i == 3 ) {	
         break;
      }
   }while ( i < 5 );
}

دقت کنید که کاربرد دستور break در حلقه ها با کاربرد آن در ساختار switch که در قسمت قبلی در مورد آن صحبت کردیم متفاوت است.


کلمه کلیدی continue


زمانی که دستور continute داخل یک حلقه نوشته می شود، زمان رسیدن به این دستور، اجرای جاری حلقه متوقف شده و تکرار بعدی شروع می شود، برای مثال اگر در تکرار دوم یک حلقه باشیم و به دستور continute برسیم، روند اجرا برای تکرار دوم متوقف شده و تکرار سوم شروع خواهد شد. نحوه استفاده از دستور continute به صورت زیر است:

continute;

دیاگرام زیر ساختار کلی این دستور را زمان استفاده در حلقه ها نمایش می دهد:

img5


در کد زیر، زمانی که مقدار i برابر سه باشد یک واحد به متغیر i اضافه شده و ادامه حلقه اجرا نمی شود و به ابتدای حلقه منتقل می شویم:

#include <stdio.h>

main() {
   int i = 0;   
   do {	
      if( i == 3 ) {
		
         i = i + 1;
         continue;
      }
      printf( "Hello ITPro.ir!\n");
      i = i + 1;
   }while ( i < 5 );
}


حلقه for

دستور for نیز یکی دیگر از دستوراتی است که برای ایجاد تکرار در کدها استفاده می شود. ساختار کلی دستور for به صورت زیر است:

for(init; condition; increment)
{
}

همانطور که مشاهده می کنید این حلقه با کلمه کلیدی for آغاز شده و داخل پرانتز و مقابل کلمه کلیدی for سه بخش داریم که با کاراکتر ; از هم جدا شده اند. در زیر به تعریف هر یک از این بخش ها می پردازیم:

  1. بخش init: در این بخش متغیری که داخل حلقه استفاده می شود را تعریف و مقدار دهی اولیه می کنیم، دقت کنید که می توان این متغیر را در بیرون حلقه تعریف کرد.
  2. بخش condition: این بخش شرطی را مشخص می کند که حلقه بر اساس آن اجرا خواهد شد، معمولاً این شرط بر اساس مقدار متغیری که در بخش init تعریف شده اعمال می شود.
  3. بخش increment: در این بخش مشخص می کنیم که با هر بار تکرار، متغیری که در بخش init تعریف شده است چه تغییری می کند، می توانیم مقدار متغیر را افزایش یا کاهش دهیم که این کاهش یا افزایش تاثیر بر روی شرطی دارد که در قسمت condition نوشته شده.

در تصویر زیر دیاگرام کلی ساختار دستور for را مشاهده می کنید:

img6


کد زیر مثالی از کاربرد دستور for در زبان سی است:

#include <stdio.h>
 
int main () {
   int a;	
   for( a = 10; a < 20; a = a + 1 ){
      printf( "Hello ITPro.ir!\n");
   } 
   return 0;
}

دستورات break و continute دقیقاً همان کاربردهای ذکر شده را در ساختار حلقه for دارند.

همانطور که در ابتدای این مطلب گفتیم، ساختار دستور تکرار و حلقه ها در زبان های سی، سی شارپ و جاوا مشترک است، مثال زیر کد بالا را در زبان سی شارپ نشان می دهد:

public static void Main () {
   int a;
   for( a = 10; a < 20; a = a + 1 ){
      System.Console.WriteLine( "Hello ITPro.ir!\n");
   } 
}


حلقه در زبان Python


در برخی زبان های برنامه نویسی مانند Python، شیوه نوشتن حلقه با زبان هایی مانند سی متفاوت است و این زبان ها ساختار مجزایی را تعریف می کنند. برای مثال، کد زیر ساختار حلقه while را در زبان python نشان می دهد:

i = 0

while (i < 5):
   print "Hello ITPro.ir!"
   i = i + 1

در زبان python دستورات break و continute دقیقاً همان کاربرد ذکر شده در زبان های سی، سی شارپ و جاوا را دارند.

در این قسمت با مبحث حلقه ها در زبان های برنامه نویسی آشنا شدیم، در قسمت بعدی در مورد اعداد و کاراکترها صحبت خواهیم کرد. ITPRO باشید
برچسب ها
ردیف عنوان
1 برنامه نویسی به زبان ساده - قسمت اول :: آشنایی با برنامه کامپیوتری، برنامه نویس و زبان برنامه نویسی
2 برنامه نویسی به زبان ساده - قسمت دوم :: انواع زبان های برنامه نویسی
3 برنامه نویسی به زبان ساده - قسمت سوم :: اجرای کد ها، Compiler و Interpreter و Assembler
4 برنامه نویسی به زبان ساده - قسمت چهارم :: مبناهای عددی
5 برنامه نویسی به زبان ساده - قسمت پنجم :: عملگر های بیتی (Bitwise Operators)
6 برنامه نویسی به زبان ساده - قسمت ششم :: محیط های یکپارچه توسعه (Integrated Development Environment)
7 برنامه نویسی به زبان ساده - قسمت هفتم :: شروع به کار با زبان های برنامه نویسی و اصطلاحات رایج
8 برنامه نویسی به زبان ساده - قسمت هشتم :: نوع های داده (Data Types) و متغیرها (Variables)
9 برنامه نویسی به زبان ساده - قسمت نهم :: کلمات کلیدی (Keywords) و الگوریتم ها (Algorithms)
10 برنامه نویسی به زبان ساده - قسمت دهم :: عملگرها و عملوندها
11 برنامه نویسی به زبان ساده - قسمت یازدهم :: دستورات کنترلی و شرط ها
12 برنامه نویسی به زبان ساده - قسمت دوازدهم :: دستورات تکرار و حلقه ها
13 برنامه نویسی به زبان ساده - قسمت سیزدهم :: آرایه ها و کاراکترها
14 آموزش: برنامه نویسی به زبان ساده - قسمت آخر :: توابع (Functions)
دوره مجموعه کل دوره
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
  • سلام وقت بخیر، یسوالی داشتم می خواستم بدونم چطور میشه یک خط کد رو در تمام فرم های دیگر(فرم ۲،۳،۴،..) فراخوانی و استفاده کرد
  • سلام، وقت بخیر
    کد مورد نظر رو باید داخل یک کلاس تعریف کنید و از داخل کلاس های دیگه از کلاس استفاده کنید.

برای ارسال نظر ابتدا به سایت وارد شوید