Пожалуйста, уточните мне свой вопрос.
Если вы хотите больше навигационных виджетов или разделов. Просто скопируйте код и вставьте туда, куда вы хотите его добавить. *** Но вам нужно изменить идентификатор раздела и идентификатор виджетов. А раздел и виджеты поддерживаются только в шаблонах, а не в посте. Или вы можете перейти в Макет> добавить новый гаджет> добавить страницы> добавить ссылки и сохранить виджет.
Или.
Если вы хотите добавить дополнительные ссылки в это навигационное меню, просто перейдите в Макет> Выберите «Изменить» этого списка страниц и добавьте новую ссылку там.
Используйте маркировку на наиболее удаленном цикле и включайте эту маркировку в break
оператор, когда Вы захотите выпрыгнуть из всех циклов. В примере ниже, я изменил Ваш код для использования маркировать OUTERMOST
:
String valueFromObj2 = null;
String valueFromObj4 = null;
OUTERMOST: for(Object1 object1: objects){
for(Object2 object2: object1){
//I get some value from object2
valueFromObj2 = object2.getSomeValue();
for(Object3 object3 : object2){
for(Object4 object4: object3){
//Finally I get some value from Object4.
valueFromObj4 = object4.getSomeValue();
//Compare with valueFromObj2 to decide either to break all the foreach loop
if( compareTwoVariable(valueFromObj2, valueFromObj4 )) {
break OUTERMOST;
}
}//fourth loop ends here
}//third loop ends here
}//second loop ends here
}//first loop ends here
Извлеките все циклы в функцию и используйте возврат.
Вы могли использовать маркированный оператор завершения. Этот вид повреждения завершается, внешний оператор
Посмотрите Переходить Учебное руководство по Java Операторов для самого легкого пути, с помощью маркировки. Можно маркировать любой из для циклов, затем использовать break
или continue
в сочетании с теми маркировками.
альтернатива использованию маркировок должна использовать return
вместо этого. Просто осуществите рефакторинг свой код в вызов метода для обхода потребности использовать маркировки вообще.
Ваш пример довольно универсален, таким образом, трудно сказать, что продолжается, но я получаю такой сильный запах кода из кода Вы при условии, что я вынужден думать, что должен быть другой способ сделать вещь полностью, скорее всего, посредством рефакторинга фактической структуры данных к чему-то более значимому.
, Какой список objects
? Что другой (скорее всего, важный) данные это содержит? Если бы это не слишком много стычки, я ценил бы, если бы Вы предоставили более соответствующий код, так как refactorer во мне становится все легкомысленным только от наблюдения той груды циклов.
Один способ повредиться, или свернуть несколько операторов (на самом деле стековые фреймы) состоит в том, чтобы выдать исключение, но это не рекомендуется, потому что это действительно дорогой, чтобы время выполнения раскрутило стек и это могло привести к действительно противному, трудному отлаживать неопределенное поведение, (иметь это в виду).
Иначе, что я рекомендую, переписывают тот код, чтобы смочь убежать из цикла корректным способом. При наклонении изменения этот код каким-либо другим способом хорошо затем необходимо будет закончиться к исключениям...
Выдать исключение и поймать его вне циклов? Используйте что-то, что это "считало вредным?"
Это немного забавно, когда информатика ставит себя в безвыходное положение ;-)
Простое решение состоит в том, чтобы поместить весь поисковый процесс в метод и return
, как только у Вас есть ответ.
Однако абстрактная форма Вашего примера кода оставляет некоторые другие рассматриваемые возможности. Например, есть ли способ "индексировать" часть содержания (например, использование Map
экземпляры) так, чтобы Вы не использовали циклы "в лоб"?
Кроме того, что поддержки Java маркировали повреждение, см. также , это возможный выйти для перед временем в C++, если конечное условие достигнуто? , который является подобным вопросом с некоторыми другими соответствующими решениями.