4.2 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| id | title | challengeType | videoUrl | forumTopicId | dashedName |
|---|---|---|---|---|---|
| 5a2efd662fb457916e1fe604 | Ітерація з циклами do...while у JavaScript | 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 до порожнього масиву і значення i до 5. Коли ми виконуємо цикл while, умова обчислюється як false, оскільки i не менше за 5, тому ми не виконуємо код всередині циклу. Результатом є те, що ourArray не матиме доданих значень і досі виглядатиме як [], коли весь код у прикладі вище вже завершить виконання. А зараз погляньте на цикл do...while:
const ourArray = [];
let i = 5;
do {
ourArray.push(i);
i++;
} while (i < 5);
У цьому випадку ми ініціалізуємо значення i до 5, так само, як ми зробили з циклом while. Коли ми доходимо до наступного рядка, то бачимо, що немає умови, тому ми переходимо до коду у фігурних дужках та виконуємо його. Ми додамо один елемент до масиву та збільшимо i перед тим, як перейти до перевірки умови. Коли ми обчислимо умову i < 5 в останньому рядку, ми побачимо, що зараз i дорівнює 6 та не проходить перевірку умови, тому ми виходимо з циклу і завершуємо роботу. В кінці вищеподаного прикладу, значення 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)