برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

آموزش دارت: حلقه های تکرار و پیمایش

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

 

حلقه for در زبان برنامه نویسی دارت

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

توضیحات تکمیلی:

این حلقه در هنگام تعریف ۳ پارامتر اصلی دارد :

  1. مقدار اولیه متغیر : به وسیله این مقدار ، مقدار اولیه برای شروع شمارنده حلقه تعیین می شود .
  2. عبارت کنترلی : در این قسمت یک عبارت کنترلی مرتبط با شمارنده حلقه تعیین می شود ، که در هر بار اجرای مجدد حلقه ، شرط عبارت کنترل شده و در صورت برقرار بودن شرط ، دستورات حلقه اجرا می شود .
  3. گام افزایش یا کاهش : در این قسمت ، میزانی که متغیر شمارنده حلقه ، در هر بار اجرای دستورات آن افزایش یا کاهش می یابد را تعیین می کنیم .

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

 

به مثال زیر توجه کنید:

var message = new StringBuffer('Dart is fun');
for (var i = 0; i < 5; i++) {
  message.write('!');
}

حلقه while در زبان برنامه نویسی دارت

در این حالت ، دستورالعمل های حلقه تا زمانی که شرط تعیین شده برای آن درست باشد ، مجددا اجرا خواهد شد .

در این نوع حلقه ابتدا شرط حلقه در مقابل کلمه کلیدی while تعریف می شود . در هر بار اجرای حلقه ، برنامه شرط یا شروط حلقه را چک کرده و در صورت بر قرار بودن آن ، دستورالعمل های حلقه را یکبار اجرا کرده و مجددا به ابتدای حلقه باز می گردد .
در حلقه while نیز می توان از یک متغیر برای کنترل اجرای حلقه استفاده کرد . در صورت استفاده از یک متغیر شمارنده ، باید گام افزایش یا کاهش متغیر در بدنه دستورات حلقه تعریف شود و در صورت عدم استفاده از یک متغیر کنترلی ، باید شرط حلقه در ادامه به نحوی نقض شود ، وگرنه حلقه به صورت بی نهایت ادامه می یابد .
شکل کلی تعریف یک حلقه while به صورت زیر است :

while (!isDone()) {
  doSomething();
}

حلقه  do while در دارت

این حلقه کاملا شبیه while بوده با این تفاوت که حداقل یک بار اجرا میشود به کد زیر توجه کنید:

do {
  printLine();
} while (!atEndOfPage());

 

پیمایش در زبان برنامه نویسی دارت

for .. in در زبان دارت

برای پیمایش یا به اصطلاح حرکت کردن در یک لیست یا شی object دقیقا مثلا js میتوانید از for .. in استفاده کنید. به ازای خواندن هر یک از اعضا آرایه یا یکی از خواص شی مورد نظر ، یکبار دستورات درون حلقه اجرا خواهد شد .
تعداد دفعات تکرار دستورات حلقه ، برابر با تعداد اعضای آرایه و یا تعداد خواص شی مورد نظر است . در این حلقه معمولا از یک متغیر به عنوان شمارنده یا اندیس آرایه استفاده می شود .

مثال:

var collection = [0,1,2];
for (var x in collection) {
  print(x);
}

 

forEach در دارت

این نوع حلقه برای پیمایش یک آرایه یا همان لیست به کار می آید و زمانی مناسب است که که شما مقدار های شمارنده را نمیدانید و هیچ شباهتی با foreach در php ندارد در واقع چیزی شبیه array_walk در php می باشد که با آن یک تابعی برای اعمال تغییرات روی تک ت اعضای یک لیست میتوانید انجام دهید به مثال ساده زیر توجه کنید:

main() {
  var list = [4,1,2];
  list.forEach(f(e) => print(e));
}

در بالا f(e) یک تابع برای پرینت اعضا تعریف شده و مثال پیچیده تر زیر نیز می تواند از ابهام این موضوع جدید کاهش دهد

var callbacks = [];
for (var i = 0; i < 2; i++) { callbacks.add(() =>; print(i));
}
callbacks.forEach((c) => c());

خروج از حلقه و یا ادامه دادن در دارت

دستورات break و continue در C و javascript و یا java معرف حضورتون هستند کار کلی این دو دستور به صورت زیر است:

beark: برای خروج کامل از حلقه در حال اجرا می باشد

break در دارت

 

continue: برای گذشتن از بدنه حلقه در گام جاری می باشد و ادامه دادن از سر حلقه

 

با تصاویر بالا کاربرد آنها مشخص شد.

اما مثال:

while (true) {
  if (shutDownRequested()) break;
  processIncomingRequests();
}




for (int i = 0; i < candidates.length; i++) {
  var candidate = candidates[i];
  if (candidate.yearsExperience < 5) {
    continue;
  }
  candidate.interview();
}

 

هر آنچه دو مورد حلقه ها نیاز بود سعی شد با بیشتر توضیح و کاملترین شکل ممکن مطرح شود

امیدوارم که استفاده کرده باشید.

نظرات

یک پاسخ به “آموزش دارت: حلقه های تکرار و پیمایش”
  1. dolphin

    مرسی a1guard

    دمت گرم راجب دارت بیشتر برامون بگو
    بازم دمت گرم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *