28 lines
1.1 KiB
Markdown
28 lines
1.1 KiB
Markdown
|
---
|
||
|
title: Prevent Infinite Loops with a Valid Terminal Condition
|
||
|
localeTitle: منع حلقات لا نهائية مع شرط محطة صالح
|
||
|
---
|
||
|
## منع حلقات لا نهائية مع شرط محطة صالح
|
||
|
|
||
|
* لمنع حلقة لا نهائية، و `while-condition` يجب أن تصل إلى حالة محطة للخروج من الحلقة.
|
||
|
* لذا يحدث الخطأ في هذا التحدي بسبب الشرط - `i != 4` - في حلقة for.
|
||
|
* إذا ألقيت نظرة عن كثب على الرمز:
|
||
|
|
||
|
`function myFunc() {
|
||
|
for (let i = 1; i != 4; i += 2) {
|
||
|
console.log("Still going!");
|
||
|
}
|
||
|
}
|
||
|
`
|
||
|
|
||
|
* سترى أن `i` هو initialised أولا ك 1 وبعد كل تكرار للحلقة، `i` يتزايد بنسبة 2.
|
||
|
* باستخدام هذا المنطق ، بعد التكرار الأول - `i = 3` والتكرار الثاني `i = 5` ، لن يتم استيفاء الشرط `i != 4` وستحدث حلقة لا نهائية.
|
||
|
|
||
|
## حل:
|
||
|
|
||
|
`function myFunc() {
|
||
|
for (let i = 1; i <= 4; i += 2) {
|
||
|
console.log("Still going!");
|
||
|
}
|
||
|
}
|
||
|
`
|