Задаваясь вопросом, что оператор continue
делает в цикле do...while(false)
, я смоделировал простой контрольный пример (псевдокод):
count = 0;
do {
output(count);
count++;
if (count < 10)
continue;
}while (false);
output('out of loop');
Результат был, к моему удивлению:
0
out of loop
Немного запутавшись, я изменил цикл с do...while
на for
:
for (count = 0; count == 0; count++) {
output(count);
if (count < 10)
continue;
}
output('out of loop');
Хотя функционально это не то же самое, цель практически та же: создать условие, удовлетворяющее только первой итерации, и продолжить в следующих (пока не будет достигнуто определенное значение, исключительно для остановки возможных бесконечных циклов.) Они могут не запускать такое же количество раз, но функциональность здесь не важна.
Вывод был таким же, как и раньше:
0
out of loop
Теперь рассмотрим простой цикл while
:
count = 0;
while (count == 0) {
output(count);
count++;
if (count < 10)
continue;
}
output('out of loop');
Еще раз, тот же вывод.
Это немного сбивает с толку, так как я всегда думал о выражении continue
как о «переходе к следующей итерации». Итак, здесь я спрашиваю: что делает оператор continue
в каждом из этих циклов? Это просто перейти к состоянию?
((Для чего бы то ни было, я проверял вышеупомянутое в JavaScript, но я считаю, что это не зависит от языка ... JS должен был по крайней мере сделать это правильно))