Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-do...while-loops.md
2023-01-30 18:58:54 +02:00

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