2.7 KiB
2.7 KiB
id | title | challengeType | videoUrl | forumTopicId | dashedName |
---|---|---|---|---|---|
5a2efd662fb457916e1fe604 | do...while 循环 | 1 | https://scrimba.com/c/cDqWGcp | 301172 | iterate-with-javascript-do---while-loops |
--description--
下一种循环叫作 do...while
循环。 它被称为 do...while
循环,是因为不论什么情况,它都会首先 do
(运行)循环里的第一部分代码,然后 while
(当)规定的条件被评估为 true
(真)的时候,它会继续运行循环。
const ourArray = [];
let i = 0;
do {
ourArray.push(i);
i++;
} while (i < 5);
上面的示例行为类似于其他类型的循环,由此产生的数组将看起来像 [0, 1, 2, 3, 4]
。 然而,do...while
不同于其他循环的地方,是第一次循环检查失败时的行为。 让我们看看代码中的区别:这里是一个常规的 while
循环,只要 i < 5
,就会在循环中运行代码:
const ourArray = [];
let i = 5;
while (i < 5) {
ourArray.push(i);
i++;
}
这个例子中,定义了一个空数组 ourArray
以及一个值为 5 的 i
。 当执行 while
循环时,因为 i
不小于 5,所以循环条件为 false
,循环内的代码将不会执行。 ourArray
最终没有添加任何内容,因此示例中的所有代码执行完时,ourArray 仍然是[]
。 现在,看一下 do...while
循环。
const ourArray = [];
let i = 5;
do {
ourArray.push(i);
i++;
} while (i < 5);
在这里,和使用 while
循环一样,将 i
的值初始化为 5。 执行下一行时,没有执行循环检查,直接执行花括号内的代码。 数组会添加一个元素,并在进行条件检查之前递增 i
。 然后,在条件检查时因为 i
等于 6 不符合条件 i < 5
,所以退出循环。 最终 ourArray
的值是 [5]
。 本质上,do...while
循环确保循环内的代码至少运行一次。 让我们通过 do...while
循环将值添加到数组中。
--instructions--
将代码中的 while
循环更改为 do...while
循环,将数字 10
添加到 myArray
中,代码执行完时,i
等于 11
。
--hints--
你应该使用 do...while
循环。
assert(code.match(/do/g));
myArray
应该等于 [10]
。
assert.deepEqual(myArray, [10]);
i
应该等于 11
。
assert.equal(i, 11);
--seed--
--after-user-code--
if(typeof myArray !== "undefined"){(function(){return myArray;})();}
--seed-contents--
// Setup
const myArray = [];
let i = 10;
// Only change code below this line
while (i < 5) {
myArray.push(i);
i++;
}
--solutions--
const myArray = [];
let i = 10;
do {
myArray.push(i);
i++;
} while (i < 5)