4.6 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)