در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

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

خیلی اوقات پیش می آید که می خواهیم در یک برنامه، قطعه ای از کد به تعداد دفعات مشخص اجرا شود. برای مثال، فرض کنید می خواهیم در زبان سی عبارت 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 باشید

نویسنده: حسین احمدی

منبع : جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#حلقه_for #برنامه_نویسی_رو_از_کجا_شروع_کنم #حلقه_ها_در_برنامه_نویسی #دستور_break_در_حلقه_ها #حلقه_ها_در_python #دستور_continue_در_حلقه_ها #آموزش_برنامه_نویسی #شروع_برنامه_نویسی #دستور_do_while #دستور_while
عنوان
1 آموزش برنامه نویسی به زبان ساده قسمت 1 : مفاهیم اولیه رایگان
2 آموزش برنامه نویسی به زبان ساده قسمت 2 : انواع زبان برنامه نویسی رایگان
3 آموزش برنامه نویسی به زبان ساده قسمت 3 : روش های اجرای کد رایگان
4 آموزش برنامه نویسی به زبان ساده قسمت 4 : مبنا های عددی رایگان
5 آموزش برنامه نویسی به زبان ساده قسمت 5 : عملگر های بیتی رایگان
6 آموزش برنامه نویسی به زبان ساده قسمت 6 : محیط های یکپارچه توسعه رایگان
7 آموزش برنامه نویسی به زبان ساده قسمت 7 : شروع به کار رایگان
8 آموزش برنامه نویسی به زبان ساده قسمت 8 : نوع های داده و متغیرها رایگان
9 آموزش برنامه نویسی به زبان ساده قسمت 9 : کلمات کلیدی و الگوریتم رایگان
10 آموزش برنامه نویسی به زبان ساده قسمت 10 : عملگرها و عملوندها رایگان
11 آموزش برنامه نویسی به زبان ساده قسمت 11 : دستورات کنترلی و شرط رایگان
12 آموزش برنامه نویسی به زبان ساده قسمت 12 : دستورات تکرار و حلقه رایگان
13 آموزش برنامه نویسی به زبان ساده قسمت 13 : آرایه ها و کاراکترها رایگان
14 آموزش برنامه نویسی به زبان ساده قسمت 14 : توابع رایگان
زمان و قیمت کل 0″ 0
2 نظر
amir.ashouri

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

حسین احمدی

سلام، وقت بخیر

کد مورد نظر رو باید داخل یک کلاس تعریف کنید و از داخل کلاس های دیگه از کلاس استفاده کنید.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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