Ho quattro cicli foreach che eseguono l'iterazione attraverso le raccolte e in base a una condizione fanno qualcosa. Ecco il codice che sto scrivendo adesso:Come interrompere più cicli 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
Lo scopo principale (gli oggetti nel codice) proviene da un terzo fornitore di parti SDK, quindi non posso cambiare nulla su quella parte. Voglio chiedere alla community StackOverflow se esiste un approccio migliore per interrompere tutti e quattro i cicli foreach. O se esiste un altro modo per refactoring questo codice per renderlo più leggibile e mantenibile. Grazie.
Btw, è * per * non * foreach *. –
No, il for (Object o: os) è in realtà noto come ciclo foreach o iteratore. – Esko
La versione originale aveva "foreach" nel codice stesso. Grazie per il montaggio. – royalGhost