Обычно я вижу continue
(и break
) как предупреждение о том, что код может использовать некоторый рефакторинг, особенно если объявление цикла while
или for
не сразу взгляд. То же самое верно для return
в середине метода, но по несколько другой причине.
Как уже говорили другие, continue
движется к следующей итерации цикла, а break
выходит из замкнутого цикла.
Это могут быть бомбы замедленного действия, потому что нет непосредственной связи между continue
/ break
и циклом, который он продолжает / прерывает, кроме контекста; добавьте внутренний цикл или переместите «кишки» цикла в отдельный метод, и вы получите скрытый эффект сбоя continue
/ break
.
ИМХО, лучше всего использовать их в качестве крайней меры, а затем убедиться, что их использование тесно сгруппировано в начале или в конце цикла, чтобы следующий разработчик мог видеть "границы" цикла на одном экране.
continue
, break
и return
(кроме One True Return в конце вашего метода) все попадают в общую категорию «скрытых GOTO». Они помещают управление циклами и функциями в неожиданные места, что в конечном итоге приводит к ошибкам.