31 lines
898 B
Markdown
31 lines
898 B
Markdown
|
---
|
|||
|
title: Prevent Infinite Loops with a Valid Terminal Condition
|
|||
|
localeTitle: 使用有效的终端条件防止无限循环
|
|||
|
---
|
|||
|
## 使用有效的终端条件防止无限循环
|
|||
|
|
|||
|
* 为防止无限循环, `while-condition`必须达到终止条件才能退出循环。
|
|||
|
* 所以这个挑战中的错误是由于for循环中的条件 - `i != 4` - 而发生的。
|
|||
|
* 如果你仔细看看代码:
|
|||
|
|
|||
|
```javascript
|
|||
|
function myFunc() {
|
|||
|
for (let i = 1; i != 4; i += 2) {
|
|||
|
console.log("Still going!");
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
* 您将看到`i`首先初始化为1,并且在循环的每次迭代之后, `i`递增2。
|
|||
|
* 使用该逻辑,在第一次迭代之后 - `i = 3`并且第二次迭代`i = 5` ,将永远不满足条件`i != 4`并且将发生无限循环。
|
|||
|
|
|||
|
## 解:
|
|||
|
|
|||
|
```javascript
|
|||
|
function myFunc() {
|
|||
|
for (let i = 1; i <= 4; i += 2) {
|
|||
|
console.log("Still going!");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
```
|