* feat(curriculum): Add Basic JS Scrimba links * Fix: Add missing video url. * fix: update videoUrl
3.8 KiB
3.8 KiB
id, title, challengeType, videoUrl
id | title | challengeType | videoUrl |
---|---|---|---|
5a2efd662fb457916e1fe604 | Iterate with JavaScript Do...While Loops | 1 | https://scrimba.com/c/cDqWGcp |
Description
do...while
" loop because it first will "do
" one pass of the code inside the loop no matter what, and then it runs "while
" a specified condition is true and stops once that condition is no longer true. Let's look at an example.
var ourArray = [];This behaves just as you would expect with any other type of loop, and the resulting array will look like
var i = 0;
do {
ourArray.push(i);
i++;
} while (i < 5);
[0, 1, 2, 3, 4]
. However, what makes the do...while
different from other loops is how it behaves when the condition fails on the first check. Let's see this in action.
Here is a regular while loop that will run the code in the loop as long as i < 5
.
var ourArray = [];Notice that we initialize the value of
var i = 5;
while (i < 5) {
ourArray.push(i);
i++;
}
i
to be 5. When we execute the next line, we notice that i
is not less than 5. So we do not execute the code inside the loop. The result is that ourArray
will end up with nothing added to it, so it will still look like this []
when all the code in the example above finishes running.
Now, take a look at a do...while
loop.
var ourArray = [];In this case, we initialize the value of
var i = 5;
do {
ourArray.push(i);
i++;
} while (i < 5);
i
as 5, just like we did with the while loop. When we get to the next line, there is no check for the value of i
, so we go to the code inside the curly braces and execute it. We will add one element to the array and increment i
before we get to the condition check. Then, when we get to checking if i < 5
see that i
is now 6, which fails the conditional check. So we exit the loop and are done. At the end of the above example, the value of ourArray
is [5]
.
Essentially, a do...while
loop ensures that the code inside the loop will run at least once.
Let's try getting a do...while
loop to work by pushing values to an array.
Instructions
while
loop in the code to a do...while
loop so that the loop will push the number 10 to myArray
, and i
will be equal to 11
when your code finishes running.
Tests
tests:
- text: You should be using a <code>do...while</code> loop for this.
testString: assert(code.match(/do/g), 'You should be using a <code>do...while</code> loop for this.');
- text: <code>myArray</code> should equal <code>[10]</code>.
testString: assert.deepEqual(myArray, [10], '<code>myArray</code> should equal <code>[10]</code>.');
- text: <code>i</code> should equal <code>11</code>
testString: assert.deepEqual(i, 11, '<code>i</code> should equal <code>11</code>');
Challenge Seed
// Setup
var myArray = [];
var i = 10;
// Only change code below this line.
while (i < 5) {
myArray.push(i);
i++;
}
After Test
if(typeof myArray !== "undefined"){(function(){return myArray;})();}
Solution
var myArray = [];
var i = 10;
do {
myArray.push(i);
i++;
} while (i < 5)