Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-do...while-loops.md

4.6 KiB
Raw Blame History

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)