Ich habe vier foreach-Schleifen, die durch die Sammlungen iterieren und basierend auf einer Bedingung etwas tun. Hier ist der Code, den ich jetzt schreibe:Wie man mehrere foreach Schleife bricht?
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
Das Hauptobjekt (Objekte im Code) stammt von einem Drittanbieter SDK, so kann ich nichts auf diesem Abschnitt ändern. Ich möchte die Stackoverflow-Community fragen, ob es einen besseren Ansatz gibt, alle vier foreach-Schleifen zu durchbrechen. Oder wenn es eine andere Möglichkeit gibt, diesen Code umzuformulieren, um ihn lesbarer und wartbarer zu machen. Vielen Dank.
Btw, es ist * für * nicht * foreach *. –
Nein, das for (Object o: os) ist eigentlich als Foreach oder Iterator-Schleife bekannt. – Esko
Die ursprüngliche Version hatte "foreach" im Code selbst. Danke für die Bearbeitung. – royalGhost