سوڕەکان (Loops) چین؟

لە بەرنامەسازییدا، زۆرجار پێویستمان بەوە دەبێت کە کۆدێک چەند جارێک دووبارە بکەینەوە. بۆ نموونە، ئەگەر بتەوێت ناوی ١٠٠ قوتابی چاپ بکەیت، پێویست ناکات ١٠٠ جار فەرمانی چاپکردن بنووسیت. سوڕەکان یارمەتیمان دەدەن ئەم کارە بە چەند دێڕێکی کەم ئەنجام بدەین.

تێبینی: سوڕەکان یەکێک لە گرنگترین بنەماکانی بەرنامەسازی پێکدەهێنن و بەکاردێن بۆ کەمکردنەوەی دووبارەبوونەوەی کۆد (DRY - Don't Repeat Yourself).

سوڕی for

سوڕی for کاتێک بەکاردێت کە پێشوەختە دەزانین دەمانەوێت کۆدەکە چەند جارێک دووبارە ببێتەوە. ئەم سوڕە لە سێ بەشی سەرەکی پێکدێت: دەستپێک، مەرج، و گۆڕانکاری.

for (let i = 0; i < 5; i++) {
  console.log("ژمارە: " + i);
}

شیکردنەوەی کۆدەکە:

  • let i = 0: گۆڕاوێک دروست دەکەین بە ناوی i و بەهای سەرەتایی دەکەین بە 0.
  • i < 5: مەرجەکە ئەوەیە کە سوڕەکە بەردەوام بێت تا ئەو کاتەی i لە 5 بچووکترە.
  • i++: لە هەر جارێکدا، بەهای i یەک زیاد دەکات.

هەڵەی باو: زۆرجار فێرخوازان لەبیر دەکەن گۆڕاوەکە زیاد بکەن (i++), ئەمەش دەبێتە هۆی ئەوەی سوڕەکە هەرگیز نەوەستێت.

سوڕی while

سوڕی while کاتێک بەکاردێت کە مەرجێکی دیاریکراومان هەیە و نازانین چەند جار دووبارە دەبێتەوە. سوڕەکە تا ئەو کاتە کار دەکات کە مەرجەکە true بێت.

let i = 0;
while (i < 3) {
  console.log("سڵاو! ژمارە: " + i);
  i++;
}

شیکردنەوە: لەم نموونەیەدا، سەرەتا i یەکسانە بە 0. کاتێک i دەبێتە 3، مەرجەکە دەبێتە false و سوڕەکە دەوەستێت. گرنگە هەمیشە گۆڕاوەکە لەناو لەشی سوڕەکەدا نوێ بکەیتەوە.

سوڕی do...while

ئەم سوڕە زۆر لە while دەچێت، بەڵام جیاوازییەکی سەرەکی هەیە: لەم سوڕەدا کۆدەکە لانی کەم جارێک جێبەجێ دەبێت، تەنانەت ئەگەر مەرجەکەش لە سەرەتاوە هەڵە بێت.

let x = 10;
do {
  console.log("ئەمە لانی کەم جارێک چاپ دەبێت");
  x++;
} while (x < 5);

ئاگاداری لە سوڕی بێکۆتا (Infinite Loops)

ئاگاداری: هەمیشە دڵنیابن لەوەی مەرجەکەتان لە کۆتاییدا دەبێتە false. ئەگەر مەرجەکە هەمیشە true بمێنێتەوە، بەرنامەکەتان تووشی "سوڕی بێکۆتا" دەبێت و لەوانەیە براوسەرەکەتان لەکار بخات. هەمیشە دڵنیابە لەوەی گۆڕاوەکەت بەرەو مەرجی وەستان دەچێت.

کۆنتڕۆڵکردنی سوڕەکان: break و continue

هەندێکجار پێویستە سوڕێک پێشوەختە بوەستێنین یان بەشێک لە خولەکە تێپەڕێنین:

  • break: سوڕەکە بە تەواوی دەوەستێنێت.
  • continue: تەنها خولی ئێستا تێپەڕ دەکات و دەچێتە سەر خولی داهاتوو.

ڕاهێنانی پراکتیکی

ئێستا کاتی ئەوەیە خۆت تاقی بکەیتەوە:

پرسیار: کۆدێک بنووسە کە ژمارەکانی نێوان 1 بۆ 10 چاپ بکات، بەڵام ئەگەر ژمارەکە گەیشتە 5، بە break سوڕەکە بوەستێنە. ئەنجامەکەت لەگەڵ هاوڕێکانت بەراورد بکە.