سوڕەکان (Loops) چین؟
لە بەرنامەسازییدا، زۆرجار پێویستمان بەوە دەبێت کە کۆدێک چەند جارێک دووبارە بکەینەوە. بۆ نموونە، ئەگەر بتەوێت ناوی ١٠٠ قوتابی چاپ بکەیت، پێویست ناکات ١٠٠ جار فەرمانی چاپکردن بنووسیت. سوڕەکان یارمەتیمان دەدەن ئەم کارە بە چەند دێڕێکی کەم ئەنجام بدەین.
سوڕی 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 سوڕەکە بوەستێنە. ئەنجامەکەت لەگەڵ هاوڕێکانت بەراورد بکە.