Да. Это полезно, когда у вас есть цикл, вложенный в другой цикл, и вы хотите продолжить цикл external . Вот страница на MDC об этом. Итак, в вашем случае, во время цикла i = 2
, если из цикла j
вы скажете continue nextLoop
, он выпрыгнет из цикла j
, сделает приращение i
и продолжит с i = 3
.
Использование continue
с метками не является обычно хорошей практикой; это может указывать на то, что логика нуждается в рефакторинге. Но это совершенно верно синтаксически, и я ожидаю, что кто-то вступит в пример с ситуацией, когда он считает, что это абсолютно необходимо.
Редактировать Отвечая на ваши изменения, метка (имя) цикла будет nextLoop
(без двоеточия): вы можете пометить операторы, а затем использовать эти метки в качестве целей continue
и break
. Проверьте спецификации для деталей. Обычно используется для обозначения циклов, как в вашем примере, и continue
или break
их, но обратите внимание, что break
также применяется к вложенным операторам switch
- вы можете пометить их как циклы и разбить на внешние изнутри одного из внутренних дел. Вы можете даже смешивать их, чтобы вы могли разорвать цикл изнутри коммутатора (пространство имен метки является общим для обоих).