2.7 KiB
2.7 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| 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(真)的時候,它會繼續運行循環。
var ourArray = [];
var i = 0;
do {
ourArray.push(i);
i++;
} while (i < 5);
上面的示例行爲類似於其他類型的循環,由此產生的數組將看起來像 [0, 1, 2, 3, 4]。 然而,do...while 不同於其他循環的地方,是第一次循環檢查失敗時的行爲。 讓我們看看代碼中的區別:這裏是一個常規的 while 循環,只要 i < 5,就會在循環中運行代碼:
var ourArray = [];
var i = 5;
while (i < 5) {
ourArray.push(i);
i++;
}
這個例子中,定義了一個空數組 ourArray 以及一個值爲 5 的 i 。 當執行 while 循環時,因爲 i 不小於 5,所以循環條件爲 false,循環內的代碼將不會執行。 ourArray 最終沒有添加任何內容,因此示例中的所有代碼執行完時,ourArray 仍然是[]。 現在,看一下 do...while 循環。
var ourArray = [];
var 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
var myArray = [];
var i = 10;
// Only change code below this line
while (i < 5) {
myArray.push(i);
i++;
}
--solutions--
var myArray = [];
var i = 10;
do {
myArray.push(i);
i++;
} while (i < 5)