Я могу использовать повреждение для выхода из нескольких вложенных для циклов?

Только элементы формы и такой могут достигнуть фокуса. Если Вы хотите, чтобы браузер прокрутил вниз к тому конкретному абзацу, нет никакого способа "по умолчанию" сделать так с jQuery, но существует плагин для него в jQuery. ScrollTo и блог, объясняющий, как сделать это вручную в Анимированная прокрутка с jQuery

282
задан ttb 16 September 2017 в 09:29
поделиться

7 ответов

AFAIK, C ++ не поддерживает циклы именования, как Java и другие языки. Вы можете использовать goto или создать значение флага, которое вы используете. В конце каждого цикла проверяйте значение флага. Если установлено значение true, вы можете выйти из этой итерации.

222
ответ дан 23 November 2019 в 01:56
поделиться

Оператор break завершает выполнение ближайшего включающего do , для , переключателя , или , а оператор, в котором он появляется. Управление передается оператору, следующему за завершенным оператором.

из msdn .

3
ответ дан 23 November 2019 в 01:56
поделиться

break выйдет только из самого внутреннего цикла, содержащего его.

Вы можете использовать goto , чтобы выйти из любого количества циклов.

Конечно. goto часто Считается вредным .

правильно ли использовать функцию break [...]?

Использование break и goto может затруднить рассуждение о правильность программы. См. Обсуждение этого вопроса: Дейкстра не был сумасшедшим .

32
ответ дан 23 November 2019 в 01:56
поделиться

Прерывание цикла for для меня немного странно, поскольку семантика цикла for обычно указывает, что он будет выполняться определенное количество раз. Однако не во всех случаях это плохо; если вы ищете что-то в коллекции и хотите сломаться после того, как найдете это, это полезно. Однако выход из вложенных циклов в C ++ невозможен; это на других языках с помощью помеченного перерыва. Вы можете использовать ярлык и goto, но это может вызвать изжогу по ночам ..? Хотя, похоже, лучший вариант.

-3
ответ дан 23 November 2019 в 01:56
поделиться

Другие языки, такие как PHP, принимают параметр break (например, break 2;), чтобы указать количество уровней вложенных циклов, из которых вы хотите выйти, но C ++ этого не делает. Вам нужно будет решить это, используя логическое значение, которое вы установили в false перед циклом, установите значение true в цикле, если вы хотите прервать, плюс условный разрыв после вложенного цикла, проверяя, было ли логическое значение установлено в true и сломать, если да.

0
ответ дан 23 November 2019 в 01:56
поделиться

Другой способ выхода из вложенного цикла состоит в том, чтобы выделить оба цикла в отдельную функцию и вернуть из этой функции, когда вы хотите выйти.

Конечно, это вызывает другой аргумент о том, должны ли вы когда-либо явно возвращать из функции где-либо, кроме конца.

55
ответ дан 23 November 2019 в 01:56
поделиться

Нет, не портите его перерывом . Это последний оставшийся опорный пункт для использования goto .

255
ответ дан 23 November 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: