do...while
», потому что он сначала « do
» один проход кода внутри цикла, независимо от того, что происходит, а затем он запускает « while
», указанное условие истинно и останавливается, как только это условие перестает быть истинным. Давайте посмотрим на пример. var ourArray = [];Это ведет себя так же, как вы ожидали бы с любым другим типом цикла, и результирующий массив будет выглядеть как
var i = 0;
делать {
ourArray.push (я);
я ++;
} while (i <5);
[0, 1, 2, 3, 4]
. Однако то, что делает do...while
отличается от других циклов, - это то, как оно ведет себя, когда условие не выполняется при первой проверке. Давайте посмотрим на это в действии. Вот регулярный цикл while, который будет запускать код в цикле, пока i < 5
. var ourArray = [];Обратите внимание, что мы инициализируем значение
var i = 5;
тогда как (i <5) {
ourArray.push (я);
я ++;
}
i
равным 5. Когда мы выполняем следующую строку, мы замечаем, что i
не меньше 5. Таким образом, мы не выполняем код внутри цикла. В результате ourArray
будет добавлен к нему, поэтому он будет выглядеть так []
когда весь код в приведенном выше примере завершится. Теперь взгляните на цикл do...while
while. var ourArray = [];В этом случае мы инициализируем значение
var i = 5;
делать {
ourArray.push (я);
я ++;
} while (i <5);
i
как 5, как и в цикле while. Когда мы переходим к следующей строке, нет никакой проверки значения i
, поэтому мы переходим к коду внутри фигурных скобок и выполняем его. Мы добавим один элемент в массив и увеличим i
до того, как мы перейдем к проверке состояния. Затем, когда мы перейдем к проверке, если i < 5
видим, что i
теперь 6, что не позволяет выполнить условную проверку. Итак, мы выходим из цикла и выполняем его. В конце приведенного выше примера значение ourArray
равно [5]
. По существу, цикл do...while
while гарантирует, что код внутри цикла будет запускаться хотя бы один раз. Давайте попробуем do...while
loop to work, нажав значения в массив. while
цикл в коде для do...while
в myArray
i
11
do...while
петли так, чтобы петля будет толкать число 10 до myArray
, и i
буду равен 11
, когда ваш код завершения работы. do...while
loop для этого.
testString: 'assert(code.match(/do/g), "You should be using a do...while
loop for this.");'
- text: 'myArray
должен равняться [10]
.'
testString: 'assert.deepEqual(myArray, [10], "myArray
should equal [10]
.");'
- text: i
должен равняться 11
testString: 'assert.deepEqual(i, 11, "i
should equal 11
");'
```