Files
2021-10-27 21:47:35 +05:30

3.3 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
5a2efd662fb457916e1fe604 Iterar com laços do...while em JavaScript 1 https://scrimba.com/c/cDqWGcp 301172 iterate-with-javascript-do---while-loops

--description--

O próximo tipo de laço que você aprenderá é chamado de laço do...while. O laço do...while é chamado assim porque primeiro fará algo (do) ou executará algo uma vez dentro do bloco de código, não importando o que acontecer. Em seguida, continuará a executar o laço enquanto (while) a condição for true.

const ourArray = [];
let i = 0;

do {
  ourArray.push(i);
  i++;
} while (i < 5);

O exemplo acima se comporta de forma similar a outros tipos de laços, e o array resultante se parecerá com [0,1,2,3,4]. No entanto, o que torna o laço do...while diferente de outros laços é como ele se comporta quando uma condição falha na primeira verificação. Vamos ver isso na prática: Aqui está um laço comum while que rodará o código no laço enquanto i < 5:

const ourArray = []; 
let i = 5;

while (i < 5) {
  ourArray.push(i);
  i++;
}

Nesse exemplo, inicializamos o valor de ourArray como um array vazio e o valor de i sendo 5. Quando executamos o laço while, a condição é igual a false porque i não é menor que 5, portanto nós não executamos o código dentro do laço. O resultado é que ourArray terminará sem valores adicionados a ele, e ainda se parecerá com [] quando todas as linhas do código no exemplo acima forem completamente executadas. Agora, dê uma olhada no laço do...while:

const ourArray = []; 
let i = 5;

do {
  ourArray.push(i);
  i++;
} while (i < 5);

Nesse caso, nós inicializamos o valor de i para 5, assim como fizemos com o laço while. Quando chegamos na próxima linha, não há condição a ser analisada, então nós vamos ao código dentro das chaves e o executamos. Nós adicionaremos um único elemento ao array e então incrementamos i antes de chegarmos à verificação da condição. Quando nós finalmente temos o resultado da condição i < 5 na última linha, nós notamos que i agora é 6, o que não cumpre a verificação da condição, então nós saímos do laço e terminamos. Ao final do exemplo acima, o valor de ourArray é [5]. Essencialmente, um laço do...while garante que o código dentro do laço será executado pelo menos uma vez. Vamos tentar fazer um laço do...while funcionar inserindo valores em um array.

--instructions--

Altere o laço while no código para um laço do...while para que o laço adicione apenas o número 10 no myArray e i será igual a 11 quando seu código terminar de rodar.

--hints--

Você deve usar um laço do...while nesse exercício.

assert(code.match(/do/g));

myArray deve ser igual a [10].

assert.deepEqual(myArray, [10]);

i deve ser igual a 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)