Tengo cuatro bucles foreach que se repiten en las colecciones y, en función de una condición, hacen algo. Aquí está el código que estoy escribiendo ahora:¿Cómo romper múltiples ciclos foreach?
boolean breakFlag = false;
String valueFromObj2 = null;
String valueFromObj4 = null;
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
breakFlag = compareTwoVariable(valueFromObj2, valueFromObj4);
if(breakFlag){break;}
}//fourth loop ends here
if(breakFlag){break;}
}//third loop ends here
if(breakFlag){break;}
}//second loop ends here
if(breakFlag){break;}
}//first loop ends here
El objeto principal (objetos en el código) proviene de un tercer proveedor de SDK partido, así que no puedo cambiar nada en esa parte. Quiero preguntarle a la comunidad stackoverflow si hay un mejor enfoque para romper los cuatro ciclos foreach. O si hay alguna otra forma de refactorizar este código para hacerlo más legible y mantenible. Gracias.
Por cierto, es * por * no * foreach *. –
No, el for (Object o: os) se conoce en realidad como foreach o iterator loop. – Esko
La versión original tenía "foreach" en el código en sí. Gracias por editar – royalGhost