Continue

Оператор continue начинает новую итерацию ближайшего объемлющего оператора while, do, for или foreach.

оператор_continue:
continue ;

Целью оператора continue является конечная точка внедренного оператора в составе ближайшего объемлющего оператора while, do, for или foreach. Если оператор continue не содержится ни в каком операторе while, do, for или foreach, возникает ошибка времени компиляции.

Если несколько операторов while, do, for или foreach вложены друг в друга, оператор continue применяется только к самому внутреннему из них. Для передачи управления с переходом через несколько уровней вложенности следует использовать оператор goto (§8.9.3).

Оператор continue не дает возможности выйти из блока finally (§8.10). Если оператор continue встречается внутри блока finally, цель оператора continue должна находиться в том же блоке finally, в противном случае возникнет ошибка времени компиляции.

Оператор continue выполняется следующим образом.

· Если оператор continue производит выход из одного или нескольких блоков try, с которыми связаны соответствующие блоки finally, управление вначале передается в блок finally самого внутреннего оператора try. Если управление достигает конечной точки блока finally, после этого управление передается в блок finally следующего объемлющего оператора try. Этот процесс повторяется до тех пор, пока не будут выполнены все блоки finally всех сопутствующих операторов try.

· Управление передается цели оператора continue.

Поскольку оператор continue осуществляет безусловную передачу управления в другое место, конечная точка оператора continue никогда не будет достижима.